DevelopersGet started
REST API introduction
Read projects, requirements and approved content from AutoRFP.ai over HTTPS with an API key. Base URLs by region, response format, and a first request.
The AutoRFP.ai REST API gives your own systems access to the data you work with in the app: projects and their requirements, your approved content library, tags, teams and organisation settings. It reads and, with the right scopes, updates that data from scripts, integrations and internal tools.
Every request is authenticated with an API key and acts as the user you choose when you create the key, so a key can only reach what that user can.
Download the OpenAPI spec to generate a client or import the API into your tools.
Base URLs
Use the base URL for the region your AutoRFP.ai workspace is hosted in. If you are not sure, ask your workspace admin. These are the same hosts as the MCP server.
| Region | Base URL |
|---|---|
| AU | https://api.autorfp.ai/v1 |
| US | https://api.us.autorfp.ai/v1 |
| EU | https://api.eu.autorfp.ai/v1 |
Make your first request
Create an API key in the app (see Authentication), then list your projects:
List projects
curl -g "https://api.autorfp.ai/v1/projects?page[size]=5" \
-H "Authorization: Bearer $AUTORFP_API_KEY"const response = await fetch("https://api.autorfp.ai/v1/projects?page[size]=5", {
headers: { Authorization: "Bearer " + process.env.AUTORFP_API_KEY },
});
console.log(await response.json());import os
import requests
response = requests.get(
"https://api.autorfp.ai/v1/projects",
headers={"Authorization": "Bearer " + os.environ["AUTORFP_API_KEY"]},
params={"page[size]": 5},
)
print(response.json())The -g flag stops curl from treating the square brackets in page[size] as a glob pattern.
The response is a JSON document with a data array of projects, a meta.page object and links to the neighbouring pages. See List projects for every parameter and field.
Response format
Responses follow the JSON:API style and use the application/vnd.api+json content type.
dataholds the resource, or an array of resources. Each has atype, anidand itsattributes.- List endpoints add
meta.page(the current page and its size, with totals) andlinksto move between pages. - Failures return an
errorsarray. See Errors.
Request bodies for POST and PATCH are sent as plain application/json. Each endpoint in the reference shows its exact body.
{
"data": [
{
"type": "projects",
"id": "8f14e45f",
"attributes": {
"name": "Acme RFP 2026",
"status": "inProgress"
}
}
],
"meta": { "page": { "number": 1, "size": 1, "totalItems": 1, "totalPages": 1 } }
}The values above are illustrative and the attributes are trimmed. The reference shows the full response for each endpoint.
Where to go next
- Authentication: create an API key, choose its scopes and keep it safe.
- Pagination and filtering: page through lists and narrow them with filters.
- Errors: the error format and what each status means.
- Projects, Content, Tags, Teams and Organisation: the full endpoint reference.
- MCP: connect an AI assistant or your own agent instead of calling REST.