API overview
On this page
The Curriculo API is a RESTful API at https://api.curriculo.me/public that gives programmatic access to the same résumé, evaluation, language and interview engines that run inside the Curriculo product. Requests are JSON or multipart/form-data; responses are JSON.
New to Curriculo? Start with the Quickstart: create an account, issue a key and make one call.
Prerequisites
- A Developer Console account
- An API key created in Console → API keys
Available APIs
| API | Operation | What it does | Price |
|---|---|---|---|
| Parse | POST /parse/ | Read CVs (PDF or DOCX) into structured JSON. | $0.01 per request |
| Evaluate | POST /evaluate/ | Score CVs against a job: suitability, fit analysis, gaps. | $0.01 per request |
| Jobs | POST /jobs/ | Optional. Register a job description once and reuse its job_id. | Free |
| Translate | POST /translate/ | Translate strings or PDF and DOCX documents. | $0.01 per request (see pricing) |
| Detect language | POST /detect-language/ | ISO 639-1 code for one text or up to 200. | $0.001 per request |
| Interview summary | POST /summary/ | Highlights, red flags, skills and a hire recommendation from a transcript or recording. | $0.01, plus $0.002 per minute for recordings |
| Transcribe | POST /transcribe/ | Transcript of a recording, no summary. | $0.002 per minute |
| Prompt | POST /prompt/ | Generate, edit, translate or question the résumé pinned to your credential. Stateful. | $0.01 per request |
| Screening interview | POST /screening-interview | Hosted, recorded screening interviews with signed callbacks. | $0.02 per invite sent |
Background tasks
Parse, evaluate, summary, transcribe and translate also run in the background: POST /{op}/async answers 202 with a task_id at once, and you collect the result with GET /{op}/tasks/{task_id} or receive it by signed callback. See Background processing and callbacks.
Paths
Synchronous operations end in a trailing slash (/parse/). Background task paths (/parse/async, /parse/tasks/{task_id}) and screening paths (/screening-interview) are documented without one.
For the complete specification, see the OpenAPI document, or browse it in Swagger UI or ReDoc.
Authentication
| Header | Value | Required |
|---|---|---|
Authorization | Bearer key_<id>_<secret>, your Console API key | Yes |
Content-Type | application/json or multipart/form-data, depending on the operation | Yes, on requests with a body |
One Console key authorises every operation, immediately. There are no per-endpoint credentials, no scopes and nothing to enable. See Authentication.
There is no API version header. The surface is versioned by path, and additive changes (new optional fields, new operations) ship without breaking existing calls.
Base URL
https://api.curriculo.me/publicPoint your client at that base and append the operation path, for example https://api.curriculo.me/public/parse/.
- One credential everywhere. A single Console key authenticates every operation.
- Limits enforced per key, so one noisy integration cannot spend another's budget.
- Failed requests are never charged. A
4xxor5xxcosts you nothing.
Production is the only published environment.
Request and response format
See Requests and responses. The short version:
/parse/,/evaluate/,/prompt/and/transcribe/takemultipart/form-data./detect-language/and/jobs/takeapplication/json./translate/and/summary/takeapplication/json, ormultipart/form-datato send documents or recordings.- One document can be up to 10 MB. A request body can be up to 12 MB, except
/summary/, which accepts recordings up to 100 MB. - Send one item, get that item's object. Send several, get the results in input order.
Batching
There is no separate batch endpoint: the list is the batch. Up to 10 documents per request for parsing and evaluation, up to 200 texts for translation and language detection. See Batching.
Rate limits
| Limit | Value |
|---|---|
| Per API key | 600 requests per minute |
| Per IP address | 2,000 requests per minute |
| Heavy work (parse, evaluate, summary) | 3 operations at a time, shared across the service; extra requests queue |
| Request timeout | 300 seconds |
See Rate limits.
Errors
Errors are JSON and carry the HTTP status that matters. Every response carries an X-Curriculo-Request-Id header to quote to support. See Errors.
Managing your account
Keys, usage and billing are managed in the Developer Console. Your API key does hiring work. It deliberately cannot mint keys or change billing, so a leaked key can never escalate into account control.
Next steps
- Quickstart: account, key, first call in three steps.
- Background processing and callbacks: long work without holding a connection open.
- Client SDKs: generate a typed client from the OpenAPI spec.
- API reference: every field for every operation.
Updated