Skip to main content

CV parsing REST API · ATS and HR integrations

Integrate CV parsing into your ATS through a REST API

Send a CV to the CVReaderPro REST API, receive a structured response and use the data in your ATS, HR software or business application.

14-day trial · 200 free credits · no credit card

From document to data

CV sent → structured data → use in your software

CVReaderPro extracts data from the document. Your backend receives the response and decides how to map, store and display it in your candidate model.

  1. 01

    1. Send the CV

    Your backend submits the file to a parsing endpoint.

  2. 02

    2. Choose a parser

    Select a mode based on the document and required level of detail.

  3. 03

    3. Receive the data

    The API returns structured properties in a JSON or XML response.

  4. 04

    4. Use the result

    Your application maps the returned fields to its ATS, CRM or candidate database.

What data can you retrieve from a CV?

Returned properties depend on the selected parser and the information detected in the document.

Identity and contact details

Job title, first name, last name, address, city, country, phone number and available email addresses.

Work experience

Roles, employers, dates, locations, descriptions and current-position status.

Education

Degrees, institutions, dates and available descriptions.

Skills and languages

Structured skills, detected languages and identifiable proficiency levels.

Profile and experience level

Profile text, experience level and education level where returned by the parser.

Other properties

Soft skills, references, social links, hobbies and extracted text when provided by the schema.

The 56 or 96 fields are available properties, not values guaranteed to be populated. Information missing from or unusable in a CV may remain empty.

View complete schemas in the documentation

Response example

From CV to structured JSON

On the left is a synthetic CV PDF; on the right is its corresponding AI 56 JSON response from the public examples. The block shows data an ATS can map to its own candidate model.

Synthetic source CV

Alex Sample — Senior Java Engineer — Paris. Fictional profile used to illustrate the flow.

Download source CV (PDF)

Values are fictional. Populated fields and content vary by CV and selected parser.

Download the full JSON file
JSON response · AI 56 parser
{
  "documentType": "CV",
  "documentLanguage": "en",
  "candidate": {
    "jobTitle": "Senior Java Engineer",
    "title": "Mr",
    "firstName": "Alex",
    "lastName": "Sample",
    "dayOfBirth": "",
    "monthOfBirth": "",
    "yearOfBirth": "",
    "address": "Paris, France",
    "postalCode": "",
    "city": "Paris",
    "country": "FR",
    "department": "",
    "region": "",
    "phone": "",
    "mobilePhone": "",
    "driverLicense": "",
    "personalEmail": "alex.sample@example.invalid",
    "professionalEmail": "",
    "nationality": "",
    "children": ""
  },
  "profile": "Synthetic senior Java engineer with 8 years of experience developing Java, Spring Boot and PostgreSQL services. Builds REST APIs and leads engineering teams.",
  "experienceLevel": "96",
  "experiences": [
    {
      "startMonth": "01",
      "endMonth": "10",
      "startYear": "2020",
      "endYear": "2026",
      "mission": "Senior Java Engineer",
      "company": "Example Systems (synthetic)",
      "location": null,
      "description": "Built Spring Boot REST APIs and PostgreSQL services. Led a team of four engineers. Introduced CI pipelines and automated integration checks.",
      "currentPosition": true
    },
    {
      "startMonth": "09",
      "endMonth": "12",
      "startYear": "2018",
      "endYear": "2019",
      "mission": "Java Engineer",
      "company": "Example Labs (synthetic)",
      "location": null,
      "description": "Developed Java backend services, SQL reports and REST integrations.",
      "currentPosition": false
    }
  ],
  "educationLevel": "DESS, DEA, Grande Ecoles, Bac +5",
  "educations": [
    {
      "dateReceived": "2018",
      "title": "Master of Computer Science",
      "school": "Example University (synthetic)",
      "description": ""
    }
  ],
  "languages": [
    {
      "name": "English",
      "level": "Fluent"
    },
    {
      "name": "French",
      "level": "Bilingual"
    }
  ],
  "skills": [
    {
      "name": "Spring Boot",
      "level": "Confirmed"
    },
    {
      "name": "Java",
      "level": "Confirmed"
    },
    {
      "name": "PostgreSQL",
      "level": "Experienced"
    }
  ],
  "softSkills": [
    "Leadership",
    "problem solving",
    "communication"
  ],
  "references": [],
  "socialLinks": null,
  "hobbies": "",
  "resumeId": "00000000-0000-0000-0000-000000000001"
}

Technical quick start

Make your first API request

Authenticate on your server, submit the CV as multipart/form-data and process the structured response.

  1. 1. Create an API key

    Generate a key in your account and keep it on the server.

  2. 2. Send a document

    Call the standard endpoint with the CV file in the file field.

  3. 3. Choose a mode

    The parserType parameter is optional on the standard endpoint.

  4. 4. Handle the response

    Request application/json, then map the properties in your software.

cURL example

curl --fail-with-body -X POST "https://cvreaderpro.com/api/v2/resumes/parser" \
  -H "Authorization: ApiKey YOUR_API_KEY" \
  -H "Accept: application/json" \
  -F "file=@resume.pdf" \
  -F "parserType=ADVANCED"

Parser options and extended endpoint

On POST /api/v2/resumes/parser, BASIC selects rule-based parsing (56 fields) and ADVANCED selects AI 56 (56 fields). For AI 96, use POST /api/v2/resumes/extended-parser; it is a separate endpoint, not a parserType value on the standard endpoint.

POST /api/v2/resumes/extended-parser

The extended parser accepts either a file or a text field in a multipart request. Send exactly one input; check the documentation for access requirements.

API documentation

Do not expose a private API key in browser-side JavaScript. See the documentation for each endpoint’s parameters, errors and limits.

Choose a parsing level for your integration

Match the parser to the context required and the processing cost per CV.

Choose a parsing level for your integration
ModeCredits / CVAvailable fieldsTypical use
Rule-based parsing156Standardized extraction for high-volume CV processing.
AI parsing 56356AI interpretation when a document needs more context.
AI parsing 96596Extended parser for a more detailed representation.

AI 96 uses a dedicated endpoint: POST /api/v2/resumes/extended-parser. It accepts one file or one text input per request. Access may depend on an active trial or the API key’s plan.

Available field counts do not guarantee that every value will be extracted from a CV.

Explore rule-based CV parsing

Built for technical teams

Integrate parsing into your ATS or HR software

CVReaderPro provides parsing and structured output. Your application retains control of the workflow and data model.

ATS vendors

Add CV extraction to the application flow and map the response to your candidate model.

HR software

Send the useful data to candidate records and your existing HR workflows.

IT services and internal integrations

Connect parsing to business tools, candidate portals or processing pipelines.

Technical teams

Handle the response on the backend, manage errors and choose what data to display or store.

The API provides structured data, not a native connector for every ATS. Mapping, interface and business rules are implemented or configured in your software.

Responses, errors and webhooks

Plan for successful responses, errors and asynchronous events in your integration.

Standard parsing

POST /api/v2/resumes/parser

POST /api/v2/resumes/parser returns HTTP 200 in JSON or XML, depending on the Accept header.

  • 400Invalid CV file.
  • 401API key is missing or invalid.
  • 402Insufficient credits.
  • 403File parsing is not allowed for this key or account.

Extended parser

POST /api/v2/resumes/extended-parser
  • 403Parser access or an active trial is required.
  • 422The document could not be parsed.
  • 429The extended parser request limit was reached.

Formats, technical limits and candidate data

The formats currently stated for the CV parsing API are:

  • PDF
  • DOCX

The standard endpoint receives a file as multipart/form-data, and its cURL example uses a PDF. The public API page mentions PDF and DOCX; DOC and .txt files are not confirmed for this endpoint. The extended endpoint also accepts a text string in the text field, which does not confirm support for .txt files.

Limits to check before integration

  • File-size and request-rate limits depend on the endpoint.
  • Plan to handle HTTP errors and 429 responses when a request limit is reached.
  • The API documentation is the reference for endpoint-specific parameters and behavior.

How much does CV parsing through the API cost?

Credits are charged per CV based on the selected parsing mode.

How much does CV parsing through the API cost?
ModeCredits / CVUp to this many CVs with 200 credits
Rule-based parsing1200
AI parsing 56366
AI parsing 96540

These volumes assume all 200 credits are spent on one mode. Partial CVs are not counted.

The trial includes 200 credits for 14 days, with no credit card required. Test representative CVs before building the full integration.

View pricing and credits

Frequently asked questions about the CV parsing API

How do I integrate the parsing API with my ATS?

Your backend sends the CV to the API, receives the structured response and maps the returned properties to ATS fields. Your software handles the mapping and interface.

How do I get an API key?

Create an account and generate a key in your workspace. Use the Authorization: ApiKey header and keep the private key on the server.

Which CV formats can I send?

The public API page lists PDF and DOCX. The POST /api/v2/resumes/parser reference uses a multipart/form-data file field and a PDF example; it does not confirm DOC or .txt files. The extended endpoint accepts a text string in the text field, not necessarily a TXT file.

What data does the API return?

Depending on the parser, the response can include candidate data, experience, education, languages, skills, soft skills, references, social links and other schema properties.

How should I choose between rules, AI 56 and AI 96?

Rule-based parsing provides 56 fields for 1 credit per CV. AI 56 uses 56 fields for 3 credits. AI 96 provides 96 fields for 5 credits when an integration needs more detail.

Are all available fields always populated?

No. A schema property is populated only when the information is present and usable in the CV. Results vary by document and parser.

How do I receive the parsing result?

The standard endpoint returns a response to the request. Ask for JSON with Accept: application/json; some asynchronous workflows use the documented webhooks.

How many CVs can I test with 200 credits?

Up to 200 CVs with rule-based parsing, 66 with AI 56 or 40 with AI 96 if all credits are spent on one mode.

Are all endpoints available during the trial?

Access depends on the endpoint, API key and active plan or trial. Check the documentation for extended parser requirements.

Explore a synthetic example

Download the CV inputs and captured API outputs. All people, employers and vacancies are fictional. The sample documents are in English; results depend on the input and parser and require human review.

Test the parsing response with your CVs

Check returned data on representative documents, then map the properties into your ATS or HR software.

14-day trial · 200 free credits · no credit card