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 CV: one CV costs $0.01, ten cost $0.10. CVs that fail are not charged.
What does the parse endpoint return?
POST /parse/ reads a PDF or DOCX CV and returns structured JSON: name, contact details, title, roles with dates, education and skills. Values stay in the CV's own language and script, missing fields come back empty instead of absent, and list fields are always arrays. Nothing you send is stored.
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": "jordan.rivera@example.com",
"experience": [ … ],
"technical_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
Typically under 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.
New to the Curriculo API? Start with the Quickstart.
Updated