Documentation

API Reference

Everything you need to integrate Resume Parser into your application. This reference documentation is provided as a preview. Subscribers receive comprehensive HTML and PDF documentation.

Overview

Two API variants for different integration patterns.

Parse API

For backend services

Send a PDF file to POST /parse with your API key. Receive parsed JSON directly.

Upload API

For client-side apps

Upload directly from browser to POST /upload, then fetch results from your backend via GET /upload-results.

Performance

Processing time scales with document complexity.

8s
1 page resume
15s
2-3 page CV
25s
4-5 page CV

Rate limit: 30 requests per minute. Custom limits available for enterprise.

Response schema

Consistent, predictable structure for every parsed resume.

schema.json
{
  "emailAddress": <string>,
  "firstName": <string>,
  "lastName": <string>,
  "phoneNumber": <string>,
  "location": <string>,

  "linkedInLink": <string>,
  "otherLinks": [<string>],

  "workExperiences": [
    {
      "title": <string>,
      "organization": <string>,
      "location": <string | null>,
      "skillsDescription": <string>,
      "startMonth": <number>,
      "startYear": <number>,
      "endMonth": <number>,
      "endYear": <number>,
      "isOngoing": <boolean>
    }
  ],
  "workExperiencesDiscardedItems": <boolean>,

  "educations": [
    {
      "degree": <string>,
      "school": <string>,
      "year": <number>,
      "endYear": <number | null>,
      "notes": <string>,
      "location": <string | null>
    }
  ],
  "educationsDiscardedItems": <boolean>,

  "fluentLanguages": [<string>],
  "languages": [
    { "language": <string>, "level": <string> }
  ]
}
POST/v1/parse

Parse a resume PDF and receive structured JSON. Best for backend integrations.

Authorization
Bearer <api-key>
Content-Type
multipart/form-data
Max file size
1MB
curl
curl 'https://<base-url>/v1/parse' \
  -X POST \
  -H 'authorization: Bearer <api-key>' \
  -H 'content-type: multipart/form-data' \
  -F 'file=@resume.pdf;type=application/pdf'
javascript
const formData = new FormData();
formData.append("file", fs.createReadStream("resume.pdf"));

const response = await fetch("https://<base-url>/v1/parse", {
  method: "POST",
  headers: { authorization: "Bearer <api-key>" },
  body: formData,
});

const data = await response.json();
POST/v1/upload

Upload directly from browser. Returns an upload ID to fetch results from your backend.

Query Param
clientId=<client-id>
CORS
Configured per client
javascript (browser)
const file = document.querySelector('input[type="file"]').files[0];

const formData = new FormData();
formData.append("file", file, "resume.pdf");

const response = await fetch(
  `https://<base-url>/v1/upload?clientId=<client-id>`,
  { method: "POST", body: formData }
);

const { uploadId } = await response.json();
// Send uploadId to your backend
response
{ "uploadId": "abc123..." }
GET/v1/upload-results

Retrieve parsing results using the upload ID. Call from your backend with API key.

Authorization
Bearer <api-key>
Query Param
uploadId=<upload-id>
curl
curl 'https://<base-url>/v1/upload-results?uploadId=<upload-id>' \
  -H 'authorization: Bearer <api-key>'
javascript
const response = await fetch(
  `https://<base-url>/v1/upload-results?uploadId=${uploadId}`,
  { headers: { authorization: "Bearer <api-key>" } }
);

const parsedResume = await response.json();

Ready to integrate?

Get in touch to receive your API credentials and detailed documentation.

Contact us