Quickstart
One endpoint, three ways to send a CV. You will have JSON back in about a second.
Authentication
Subscribe on RapidAPI and send your key on every request. RapidAPI handles the metering and the billing; this service checks that the call actually came through it.
x-rapidapi-key: YOUR_KEY
x-rapidapi-host: resumejson.p.rapidapi.comA request that reaches the origin without RapidAPI's proxy secret gets 403 not_via_rapidapi.
Three ways to send a resume
1. JSON, when you already have the text
curl -X POST '.../v1/parse' -H 'content-type: application/json' \
-d '{"text":"Sarah Okonkwo\nStaff Engineer ..."}'2. Multipart, straight from an upload form
curl -X POST '.../v1/parse' -F 'file=@cv.pdf'3. Raw bytes, when you are streaming a file through
curl -X POST '.../v1/parse' -H 'content-type: application/pdf' --data-binary @cv.pdfPDF and DOCX are recognised from the file's own bytes, so an upload labelled application/octet-stream still works.
Limits
| Limit | Value | What happens past it |
|---|---|---|
| Upload size | 10 MB | 413 too_large |
| Extracted text | 60,000 characters | 413 too_large |
| Upstream model budget | 25 s per attempt, 2 retries | 503 upstream_unavailable with Retry-After |
Every error, and what to do about it
Retry the transient one. The rest describe something about the request that a retry will not change.
| Status | Code | Meaning | Retry? |
|---|---|---|---|
| 400 | empty_input | No text field, no file part, or an empty body. | No |
| 403 | not_via_rapidapi | The call did not come through RapidAPI. | No |
| 405 | method_not_allowed | /v1/parse is POST only. | No |
| 413 | too_large | Past the upload or character limit. The body carries limit. | No |
| 415 | unsupported_type | Not a PDF, DOCX or text. The body carries supported. | No |
| 422 | unreadable_file | The PDF is scanned, encrypted or corrupt. | No — send text |
| 422 | not_a_resume | Nothing in the document reads as a CV. | No |
| 502 | upstream_invalid | The model answered with something unusable. | Once |
| 503 | upstream_unavailable | The model is down or rate-limited. | Yes, after Retry-After |
{
"error": {
"code": "too_large",
"message": "That document is 91,204 characters; the limit is 60,000. Send the resume alone, not a bundle.",
"limit": 60000
}
}Reading the response
Two keys: resume is the document, meta is what happened. Every field of resume is documented in the field reference.
| meta field | What it tells you |
|---|---|
source | text, pdf or docx — what the bytes actually were. |
characters | How much text was extracted. A suspiciously small number on a PDF means it was scanned. |
model | Which model produced this parse. |
durationMs | Server-side time, also sent as the X-Parse-Ms header. |