RFP Response Builder API
v1.0Automatically 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/v1Authentication
X-API-Key: YOUR_API_KEYGet your API key from the dashboard. New accounts include free credit — no credit card required.
Complete Workflow Example
Process entire RFP in one call
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
/healthHealth check endpoint. Returns service status.
/extract-questionsUpload an RFP document and extract all questions that need responses.
Request
Content-Type: multipart/form-data- •
file(required): PDF or DOCX file
Response
{
"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
}/generate-responsesGenerate professional proposal responses for a list of questions.
Request Body
{
"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
{
"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..."
}
]
}/process-rfpComplete 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
{
"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.
| Field | Type | Required | Description |
|---|---|---|---|
company_name | string | ✅ | Your company name |
description | string | ✅ | Brief company description |
services | string[] | ❌ | List of services offered |
case_studies | object[] | ❌ | Previous work examples |
team_experience | string | ❌ | Team qualifications |
methodology | string | ❌ | Your work methodology |
differentiators | string[] | ❌ | Unique selling points |
certifications | string[] | ❌ | Relevant certifications |
Error Handling
| Status | Error | Solution |
|---|---|---|
| 400 | INVALID_FILE_TYPE | File must be PDF or DOCX |
| 400 | VALIDATION_ERROR | Invalid request parameters |
| 401 | Authentication required | Pass X-API-Key header with a valid key |
| 413 | FILE_TOO_LARGE | Reduce the file size and retry |
| 429 | RATE_LIMIT | Too many requests — wait before retrying |
| 500 | internal_error | Unexpected server error — retry or contact support |
Code Examples
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)
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);