RFP Response Builder API

v1.0

Automatically generate professional proposal responses to RFP documents using AI.

Overview

RFP Response Builder is an AI-powered API that helps agencies and companies automatically respond to Request for Proposal (RFP) documents. Upload your RFP, provide your company information, and get professionally written proposal responses in seconds.

📄 PDF & DOCX

Upload RFP documents in common formats

🤖 AI Extraction

Automatically identifies all questions and section references

✍️ Professional

Tailored responses using your company context

💡 Perfect For

  • • Marketing agencies responding to client RFPs
  • • Consulting firms automating proposal writing
  • • IT services streamlining bid responses
  • • Any business that regularly responds to RFPs

Quick Start

Base URL

https://api.cparse.com/rfp/v1

Authentication

http
X-API-Key: YOUR_API_KEY

Get your API key from the dashboard. New accounts include free credit — no credit card required.

Complete Workflow Example

Process entire RFP in one call

bash
curl --request POST \
  --url https://api.cparse.com/rfp/v1/process-rfp \
  --header 'X-API-Key: YOUR_API_KEY' \
  --form 'file=@rfp-document.pdf' \
  --form 'company_context={"company_name":"Acme Digital","description":"Digital marketing agency"}'

Endpoints

GET/health

Health check endpoint. Returns service status.

POST/extract-questions

Upload an RFP document and extract all questions that need responses.

Request
  • Content-Type: multipart/form-data
  • file (required): PDF or DOCX file
Response
json
{
  "success": true,
  "questions": [
    {
      "question": "Describe your company background and experience",
      "page": 2,
      "section": "4.1 Company Information"
    },
    {
      "question": "What is your project management methodology?",
      "page": 3,
      "section": "4.3 Methodology"
    }
  ],
  "document_type": "pdf",
  "page_count": 12
}
POST/generate-responses

Generate professional proposal responses for a list of questions.

Request Body
json
{
  "questions": [
    "Describe your company background",
    "Explain your project methodology"
  ],
  "company_context": {
    "company_name": "Acme Digital",
    "description": "A digital marketing agency specializing in SEO",
    "services": ["SEO", "PPC", "Analytics"],
    "case_studies": [
      {
        "client": "Major Ecommerce Brand",
        "result": "Increased organic revenue 120% in 8 months"
      }
    ],
    "team_experience": "Senior team with 10+ years experience"
  }
}
Response
json
{
  "success": true,
  "responses": [
    {
      "question": "Describe your company background",
      "answer": "Acme Digital is a premier digital marketing agency..."
    },
    {
      "question": "Explain your project methodology",
      "answer": "Our methodology centers on data-driven decision making..."
    }
  ]
}
POST/process-rfp

Complete workflow: Upload document + company context to get questions and responses in one call.

Request Body (multipart/form-data)
  • Content-Type: multipart/form-data
  • file (required): PDF or DOCX document
  • company_context (required): JSON string with company information
Response
json
{
  "success": true,
  "questions": [
    {
      "question": "Describe your company background",
      "page": 2,
      "section": "Company Information"
    }
  ],
  "responses": [
    {
      "question": "Describe your company background",
      "answer": "Acme Digital is a premier digital marketing agency..."
    }
  ],
  "document_type": "pdf"
}

Company Context

The company context object helps the AI generate tailored, relevant responses. Include as much detail as possible for better results.

FieldTypeRequiredDescription
company_namestringYour company name
descriptionstringBrief company description
servicesstring[]List of services offered
case_studiesobject[]Previous work examples
team_experiencestringTeam qualifications
methodologystringYour work methodology
differentiatorsstring[]Unique selling points
certificationsstring[]Relevant certifications

Error Handling

StatusErrorSolution
400INVALID_FILE_TYPEFile must be PDF or DOCX
400VALIDATION_ERRORInvalid request parameters
401Authentication requiredPass X-API-Key header with a valid key
413FILE_TOO_LARGEReduce the file size and retry
429RATE_LIMITToo many requests — wait before retrying
500internal_errorUnexpected server error — retry or contact support

Code Examples

Python

python
import requests
import json

url = "https://api.cparse.com/rfp/v1/process-rfp"
headers = {"X-API-Key": "YOUR_API_KEY"}

company_context = {
    "company_name": "Acme Digital",
    "description": "Digital marketing agency",
    "services": ["SEO", "PPC", "Analytics"],
}

with open("rfp-document.pdf", "rb") as f:
    response = requests.post(
        url,
        files={
            "file": f,
            "company_context": (None, json.dumps(company_context), "application/json"),
        },
        headers=headers,
    )

print(response.json())

JavaScript (Node.js)

javascript
import FormData from 'form-data';
import fs from 'fs';
import axios from 'axios';

const form = new FormData();
form.append('file', fs.createReadStream('rfp-document.pdf'));
form.append('company_context', JSON.stringify({
  company_name: 'Acme Digital',
  description: 'Digital marketing agency',
  services: ['SEO', 'PPC', 'Analytics'],
}));

const response = await axios.post(
  'https://api.cparse.com/rfp/v1/process-rfp',
  form,
  {
    headers: {
      ...form.getHeaders(),
      'X-API-Key': 'YOUR_API_KEY',
    },
  }
);

console.log(response.data);