A read-only JSON API for the CFP catalogue, plus statistics. Personal API keys are used; no OAuth flow is required.
Create a key under Profile → API key. The key is valid for 90 days and can be rotated at any time. Send it as a bearer token:
GET /api/cfps?areas=Software%20Engineering HTTP/1.1
Host: cfpindexer.com
Authorization: Bearer <your-api-key>Requests without a key return 401. Each IP is limited to 60 requests per minute; exceeded limits return 429 with a Retry-After header.
Search the catalogue. Returns up to 1,000 matching entries.
| Query | Type | Notes |
|---|---|---|
| acronym | string | Partial match |
| cfpName | string | Partial match on the full name |
| deadline | YYYY-MM-DD | Exact date |
| startingDate | YYYY-MM-DD | Exact date |
| city / state / country | string | Location filter |
| topics / areas | string | Partial match |
| sortingField | string | e.g. deadline;ASC or name;DESC |
curl "https://cfpindexer.com/api/cfps?areas=Software%20Engineering&sortingField=deadline;ASC" \
-H "Authorization: Bearer $CFP_TOKEN"Example response
[
{
"cfpLink": "ICSE-2027",
"acronym": "ICSE 2027",
"cfpName": "International Conference on Software Engineering",
"deadline": "2026-09-04T00:00:00.000Z",
"startingDate": "2027-04-12T00:00:00.000Z",
"city": "Lisbon",
"state": null,
"country": "Portugal",
"topics": ["Software Engineering", "Testing"],
"areas": ["Computing"],
"description": "..."
}
]Counts grouped by areas, topics or locations. Optionally narrow with value.
curl "https://cfpindexer.com/api/cfps/statistics?by=areas" \
-H "Authorization: Bearer $CFP_TOKEN"
[
{ "name": "Computing", "cfpCount": 812 },
{ "name": "Mathematics", "cfpCount": 96 }
]Public liveness probe. No authentication.
{ "status": "ok", "timestamp": "2026-10-31T12:00:00.000Z" }POST /api/email sends subscription digests and POST /api/utils synchronises subscription rows. Both require the CRON_SECRET header configured on the server and are not available to user API keys.
Errors return a JSON body with a message: 400 invalid query,401 missing/invalid key, 429 rate limited, 500 temporary failure. Questions: [email protected].