Parse a CV
https://api.curriculo.me/public/parse/Stateless. Reads a PDF or DOCX into structured JSON: contact details, title, roles with dates, education, skills. Nothing is stored. Values stay in the CV's own language and script; nothing is translated or rewritten. A field the CV does not contain comes back empty rather than absent, and list fields are always arrays.
Price: $0.01 per request, whether it carries one CV or ten.
Request
multipart/form-data
| Field | Type | Notes |
|---|---|---|
files | file[] | One to 10 documents, PDF or DOCX, 10 MB each. Repeat the field per document. |
file | file | Single-document alias, kept for existing integrations. |
Example
One document:
curl -X POST https://api.curriculo.me/public/parse/ \
-H 'Authorization: Bearer key_abc123_yoursecret' \
-F 'files=@/path/to/candidate.pdf'Several documents (one request, results in input order):
curl -X POST https://api.curriculo.me/public/parse/ \
-H 'Authorization: Bearer key_abc123_yoursecret' \
-F 'files=@candidate_a.pdf' \
-F 'files=@candidate_b.docx'Response
One document returns that document's object:
{
"name": "Jordan Rivera",
"title": "Lead Software Engineer",
"email": "[email protected]",
"experience": [ … ],
"skills": [ … ]
}Several documents return a results array, one entry per input, in input order. A document that cannot be read returns its own error entry while the others succeed. See Batching.
Timing
40 to 90 seconds per document. Keep your client timeout above five minutes. For a backlog, use POST /parse/async with up to 25 links per task.
Errors
| Status | Typical cause |
|---|---|
400 | Empty, unreadable or password-protected document. |
413 | A document over 10 MB, more than 10 documents, or a request body over 12 MB. |
504 | Processing exceeded 300 seconds. Send fewer documents per request. |
See Errors.
Updated