# API reference

> Reference for every Curriculo API operation: parse, evaluate, jobs, translate, detect language, summary, transcribe, prompt and screening interview.

**Source:** /docs/api/ (Curriculo Docs)  
**Updated:** 12 October 2026  
**Contact:** hello@curriculo.me

Base URL: `https://api.curriculo.me/public`. Every call carries `Authorization: Bearer key_…`. Synchronous paths end in a trailing slash; background task and screening paths are documented without one.

## Synchronous operations

| Endpoint | Capability | Body | Price |
|---|---|---|---|
| [`POST /parse/`](/docs/api/parse/) | Parse CVs, one file or a list | multipart | $0.01 |
| [`POST /evaluate/`](/docs/api/evaluate/) | Evaluate candidates against a job | multipart | $0.01 |
| [`POST /jobs/`](/docs/api/jobs/) | Optional: register a job once for `/evaluate/` | JSON | Free |
| [`POST /translate/`](/docs/api/translate/) | Translate text or documents | JSON, or multipart for documents | $0.01 minimum |
| [`POST /detect-language/`](/docs/api/detect-language/) | Detect the language of text | JSON | $0.001 |
| [`POST /summary/`](/docs/api/summary/) | Analyse an interview | JSON, or multipart for recordings and transcript documents | $0.01, plus $0.002 per minute of recording |
| [`POST /transcribe/`](/docs/api/transcribe/) | Transcribe a recording | multipart | $0.002 per minute |
| [`POST /prompt/`](/docs/api/prompt/) | Résumé assistant (session) | multipart | $0.01 |
| [`GET /prompt/resumes`](/docs/api/prompt/#saved-resumes) | List your saved résumés | none | Free |
| [`GET /prompt/resume`](/docs/api/prompt/#saved-resumes) | Retrieve one saved résumé | none | Free |

## Screening interviews

| Endpoint | Capability | Price |
|---|---|---|
| [`POST /screening-interview`](/docs/api/screening-interview/) | Invite candidates to a hosted, recorded screening | $0.02 per invite sent |
| [`GET /screening-interview/{screening_id}`](/docs/api/screening-interview/#get-a-screening) | Read a screening's results | |

## Background tasks

| Endpoint | Capability |
|---|---|
| `POST /parse/async`, `/evaluate/async`, `/summary/async`, `/transcribe/async`, `/translate/async` | Start a background task. Answers `202` with a `task_id`. |
| `GET /{op}/tasks/{task_id}` | Read a task's status and result. |

See [Background processing and callbacks](/docs/background-processing/). A task is billed as one request of its operation.

## Specification

The machine-readable specification is at [`/public/openapi.json`](https://api.curriculo.me/public/openapi.json), with [Swagger UI](https://api.curriculo.me/public/docs) and [ReDoc](https://api.curriculo.me/public/redoc) alongside it. It does not yet include the screening interview endpoints.

Shared behaviour (size limits, list responses, errors) is documented once, in [Requests and responses](/docs/requests-and-responses/), [Batching](/docs/batching/) and [Errors](/docs/errors/).
