01 / PARSING

Resume Parser

Turn resumes into structured candidate data in one request. Choose the current V3 contract or keep an existing V2 integration moving.

Version

Format

multipart/form-data

Auth

X-API-Key

V3 response

Synchronous

Reference

Endpoints

1 endpoint
01

Endpoint

Parse a resume

Send a resume file and receive structured data synchronously.

POST/api/v3/parser

Request

Content-Typemultipart/form-data
file
Filerequired

PDF, DOC, DOCX, or supported resume file.

application_id
stringoptional

Your internal application or candidate reference.

webhook_url
URLoptional

Optional callback. The synchronous response is still returned.

do_not_store_data
booleanoptional

Set to true when parsed data must not be retained. Defaults to false.

Errors

400

Missing file or invalid application_id.

401

Missing or invalid API key.

403

The account does not have enough credits.

413

The uploaded payload is too large.

415

Content-Type must be multipart/form-data.

502 / 504

Parser unavailable or request timed out.

Example request

Request example
curl -X POST https://onlineresumeparser.com/api/v3/parser \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@/path/to/resume.pdf" \
  -F "application_id=app_123"

Response

V3 returns a normalized payload with request metadata, warnings, structured errors, candidate details, experience, education, languages, skills, certifications, and interests.

{
  "status": "success",
  "request_id": "req_01J9R8M4Y2A6K7D9P3N5Q1T8",
  "warnings": [],
  "errors": [],
  "info_resume": {
    "application_id": "app_123",
    "date_parsing": "2026-09-04T10:30:00",
    "language": "en",
    "url": "https://cdn.onlineresumeparser.com/resumes/app_123.pdf",
    "face_url": "https://cdn.onlineresumeparser.com/faces/app_123.jpg",
    "face_url_expires_at": "2026-09-11T10:30:00.000Z",
    "text": "Alex Morgan\nSenior Software Engineer\nParis, France\n [email protected]\n\nSenior software engineer with 8 years of experience building web platforms and developer tools."
  },
  "info_candidate": {
    "full_name": "Alex Morgan",
    "last_name": "Morgan",
    "first_name": "Alex",
    "email": "[email protected]",
    "phone_number": "+33 6 12 34 56 78",
    "birth_date": "1992-04-18",
    "age": 34,
    "availability_now": false,
    "availability_date": "2026-10-01",
    "driver_license": ["B"],
    "job_title": "Senior Software Engineer",
    "education_name": "École Polytechnique",
    "education_level": "Level 7",
    "experience_level": "5 to 10 years",
    "linkedin_url": "https://www.linkedin.com/in/alex-morgan",
    "github_url": "https://github.com/alexmorgan",
    "other_urls": ["https://alexmorgan.dev"],
    "location": {
      "country": "France",
      "country_code": "FR",
      "region": "Île-de-France",
      "department": "Paris",
      "city": "Paris",
      "postal_code": "75011",
      "full_address": "Paris, France",
      "latitude": 48.8566,
      "longitude": 2.3522
    },
    "mobility": {
      "can_work_in_other_cities": true,
      "other_cities": [
        {
          "city": "Lyon",
          "country": "France",
          "postal_code": "69002",
          "latitude": 45.764,
          "longitude": 4.8357
        },
        {
          "city": "Brussels",
          "country": "Belgium",
          "postal_code": "1000",
          "latitude": 50.8503,
          "longitude": 4.3517
        }
      ]
    }
  },
  "work_experiences": [
    {
      "company_name": "Northstar Labs",
      "job_title": "Senior Software Engineer",
      "description": "Led a team of five engineers building a TypeScript and React SaaS platform used by 40,000 monthly users.",
      "contract_type": "Permanent contract",
      "start_date": "2022-03-01",
      "end_date": null,
      "currently_active": true,
      "work_experience_country": "France",
      "work_experience_country_code": "FR",
      "work_experience_city": "Paris",
      "work_experience_postal_code": "75009",
      "experience_duration": 52
    },
    {
      "company_name": "Atelier Digital",
      "job_title": "Software Engineer",
      "description": "Built Node.js APIs, automated deployments, and data pipelines for recruitment clients.",
      "contract_type": "Permanent contract",
      "start_date": "2018-09-01",
      "end_date": "2022-02-28",
      "currently_active": false,
      "work_experience_country": "France",
      "work_experience_country_code": "FR",
      "work_experience_city": "Paris",
      "work_experience_postal_code": "75002",
      "experience_duration": 42
    }
  ],
  "educations": [
    {
      "degree_title": "Master of Science in Computer Science",
      "school_name": "École Polytechnique",
      "description": "Coursework in distributed systems, machine learning, and software architecture.",
      "degree_type": "Level 7",
      "start_date": "2014-09-01",
      "end_date": "2016-06-30",
      "currently_active": false,
      "location": {
        "country": "France",
        "country_code": "FR",
        "region": "Île-de-France",
        "department": "Essonne",
        "city": "Palaiseau",
        "postal_code": "91120",
        "full_address": "Palaiseau, France"
      }
    },
    {
      "degree_title": "Bachelor of Engineering",
      "school_name": "Université de Technologie de Compiègne",
      "description": "Software engineering and information systems.",
      "degree_type": "Level 6",
      "start_date": "2011-09-01",
      "end_date": "2014-06-30",
      "currently_active": false,
      "location": {
        "country": "France",
        "country_code": "FR",
        "region": "Hauts-de-France",
        "department": "Oise",
        "city": "Compiègne",
        "postal_code": "60200",
        "full_address": "Compiègne, France"
      }
    }
  ],
  "rome_jobs": [
    {
      "job_title": "Senior Software Engineer",
      "job_code": "M1805",
      "rome_title": "Études et développement informatique",
      "rome_code": "M1805",
      "prediction_score": 0.97
    },
    {
      "job_title": "Software Engineer",
      "job_code": "M1805",
      "rome_title": "Études et développement informatique",
      "rome_code": "M1805",
      "prediction_score": 0.89
    }
  ],
  "languages": [
    { "language": "English", "level": "Full Professional Proficiency (C1)" },
    { "language": "French", "level": "Native or Bilingual (C2)" },
    { "language": "Spanish", "level": "Limited Working Proficiency (B1)" }
  ],
  "skills": [
    {
      "skill_title": "TypeScript",
      "skill_type": "Software skill",
      "status": "normalized",
      "domain": "Engineering",
      "subcategory": "Web"
    },
    {
      "skill_title": "React",
      "skill_type": "Software skill",
      "status": "normalized",
      "domain": "Engineering",
      "subcategory": "Frontend"
    },
    {
      "skill_title": "Node.js",
      "skill_type": "Software skill",
      "status": "normalized",
      "domain": "Engineering",
      "subcategory": "Backend"
    },
    {
      "skill_title": "System design",
      "skill_type": "Hard skill",
      "status": "raw",
      "domain": "Engineering",
      "subcategory": "Architecture"
    },
    {
      "skill_title": "Technical leadership",
      "skill_type": "Soft skill",
      "status": "raw",
      "domain": "Leadership",
      "subcategory": "Team management"
    }
  ],
  "certifications": ["AWS Certified Developer – Associate", "Professional Scrum Master I"],
  "interests": ["Open-source software", "Climbing", "Urban photography"]
}

Allowed values in response

status
"success""partial""error"

Overall parser result.

info_candidate.education_level
"Level 1""Level 2""Level 3""Level 4""Level 5""Level 6""Level 7""Level 8""Other"null

European Qualifications Framework (EQF) level, Other, or null when unavailable.

info_candidate.experience_level
"0 to 1 year""1 to 3 years""3 to 5 years""5 to 10 years""More than 10 years"null

Normalized total experience bracket, or null when unavailable.

info_candidate.availability_now
truefalsenull

Whether the candidate is available immediately.

info_candidate.mobility.can_work_in_other_cities
truefalsenull

Whether the candidate can work in another city.

work_experiences[].contract_type
"Permanent contract""Fixed-term contract""Temporary assignment""Internship""Apprenticeship""Freelance""Volunteering""Other"null

Canonical contract type, or null when it is not available.

work_experiences[].currently_active
truefalsenull

Whether the experience is the candidate’s current role.

educations[].currently_active
truefalsenull

Whether the education is currently in progress.

educations[].degree_type
"Level 1""Level 2""Level 3""Level 4""Level 5""Level 6""Level 7""Level 8""Other"null

Normalized EQF level for the education entry, Other, or null when unavailable.

languages[].level
"Native or Bilingual (C2)""Full Professional Proficiency (C1)""Professional Working Proficiency (B2)""Limited Working Proficiency (B1)""Advanced Basic Proficiency (A2)""Introductory Proficiency (A1)"null

Normalized language proficiency level, or null when unavailable.

skills[].skill_type
"Hard skill""Soft skill""Software skill"

Classification assigned to the extracted skill.

skills[].status
"raw""normalized"

Whether the skill is raw text or normalized.

Date representation

info_resume.date_parsing
YYYY-MM-DDTHH:mm:ss

Parser completion timestamp as returned by the parser; current payloads omit a timezone suffix.

info_resume.face_url_expires_at
YYYY-MM-DDTHH:mm:ss.sssZ

ISO 8601 UTC timestamp when a face URL is present; otherwise null.

info_candidate.birth_date / availability_date
YYYY-MM-DD

Date-only value extracted from the resume, or null.

work_experiences[].start_date / end_date
YYYY-MM-DD

Date-only value for the experience, or null when unavailable.

educations[].start_date / end_date
YYYY-MM-DD

Date-only value for the education, or null when unavailable.

Implementation notes. V3 is the current default version. A successful request consumes one credit. Use request_id when investigating a warning or parser error.