Welcome to the ResumeParser API documentation. Our cloud-based API extracts structured data from resume files in various formats using advanced statistical data and advanced AI models to parse resumes and return standardized JSON data.
To start using the API, you'll need to:
The ResumeParser API follows RESTful principles and returns responses in JSON format following a predefined schema.
Your RapidAPI keys carry many privileges, so be sure to keep them secure. Don't share your API keys in publicly accessible areas such as GitHub, client-side code, or in API calls made directly from a browser.
The ResumeParser API is hosted on RapidAPI and uses RapidAPI's authentication system. You'll need to include your RapidAPI key in the request headers.
Authentication is performed via RapidAPI headers:
X-RapidAPI-Key: YOUR_RAPIDAPI_KEY
X-RapidAPI-Host: resumeparser.p.rapidapi.com
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
The ResumeParser API provides the following endpoints:
Alternative endpoints: /api/resume
or /api/resume/
This endpoint extracts structured data from a resume file.
Parameter | Type | Description |
---|---|---|
resume Required | File | The resume file to parse. Supported formats: PDF, DOCX, TXT, RTF |
{
"contact": {
"name": "John Smith",
"email": "[email protected]",
"phone": "+1 (555) 123-4567",
"address": "San Francisco, CA 94105",
"website": "https://johnsmith.com",
"social": {
"linkedin": "https://linkedin.com/in/johnsmith",
"github": "https://github.com/johnsmith",
"twitter": "https://twitter.com/johnsmith",
"portfolio": "https://portfolio.johnsmith.com"
}
},
"summary": "Experienced software engineer with 8+ years developing scalable web applications...",
"education": [
{
"degree": "Master of Science in Computer Science",
"institution": "Stanford University",
"startDate": "2018-09-01",
"endDate": "2020-06-15",
"gpa": "3.8/4.0",
"location": "Stanford, CA",
"details": [
"Specialization in Machine Learning",
"Dean's List - All Semesters"
]
}
],
"experience": [
{
"title": "Senior Software Engineer",
"company": "Tech Innovations Inc.",
"location": "San Francisco, CA",
"startDate": "2020-07-01",
"endDate": null,
"responsibilities": [
"Led development of microservices architecture serving 1M+ users",
"Reduced system latency by 40% through optimization",
"Mentored team of 5 junior developers"
]
}
],
"projects": [
{
"name": "AI Resume Matcher",
"description": "Built ML-powered resume matching system",
"technologies": ["Python", "TensorFlow", "AWS"],
"link": "https://github.com/johnsmith/resume-matcher"
}
],
"certifications": [
{
"name": "AWS Certified Solutions Architect",
"issuer": "Amazon Web Services",
"date": "2021-03-15",
"credentialId": "AWS-123456",
"link": "https://aws.amazon.com/verification/123456"
}
],
"skills": {
"programmingLanguages": ["Python", "JavaScript", "Java", "Go"],
"frameworks": ["React", "Django", "Spring Boot", "Express.js"],
"tools": ["Docker", "Kubernetes", "Jenkins", "Git"],
"databases": ["PostgreSQL", "MongoDB", "Redis", "MySQL"],
"methodologies": ["Agile", "Scrum", "CI/CD", "TDD"],
"other": ["System Design", "API Development", "Cloud Architecture"]
},
"languages": [
{
"name": "English",
"proficiency": "native"
},
{
"name": "Spanish",
"proficiency": "fluent"
}
],
"awards": [
{
"title": "Best Innovation Award",
"issuer": "Tech Innovations Inc.",
"date": "2022-12-01",
"description": "For developing the company's most successful product feature"
}
],
"hobbies": ["Open Source Contributing", "Technical Blogging", "Hiking"]
}
{
"error": "No resume file provided"
}
Check the health status of the resume parser service.
{
"service": "Resume Parser API",
"status": "healthy",
"timestamp": "2025-01-01T12:00:00.000Z",
"supportedFileTypes": ["pdf"]
}
Get general information about the API service.
{
"service": "Document Parser API",
"version": "1.0.0",
"endpoints": {
"resume": {
"parse": "POST /parse-resume OR POST /api/resume",
"health": "GET /api/resume/health"
}
},
"supportedFormats": {
"resume": ["pdf"]
},
"timestamp": "2025-01-01T12:00:00.000Z"
}
The ResumeParser API returns a comprehensive JSON structure with the following fields:
Professional summary or objective statement from the resume.
Array of education entries, each containing:
Array of work experience entries, each containing:
Array of project entries, each containing:
Array of certification entries, each containing:
Categorized skills object containing:
Array of language entries, each containing:
Array of award entries, each containing:
Array of strings listing personal interests and hobbies.
The ResumeParser API uses conventional HTTP response codes to indicate the success or failure of an API request:
Code | Description |
---|---|
200 - OK | The request was successful. |
400 - Bad Request | The request was invalid. Common causes: missing file, wrong content type, unsupported file format. |
405 - Method Not Allowed | The HTTP method used is not allowed for this endpoint. |
500 - Internal Server Error | An error occurred on the server. This could be due to server configuration issues or processing errors. |
Rate limiting is handled at the API level and through RapidAPI. Specific limits depend on your RapidAPI subscription plan.
Rate limit information is included in the RapidAPI response headers:
Contact RapidAPI support for information about rate limits for your specific plan.
The API returns appropriate HTTP status codes and error messages in JSON format.
Here are examples showing how to use the ResumeParser API in different programming languages:
Here are examples showing how to use the ResumeParser API in different programming languages:
const formData = new FormData();
formData.append('resume', fileInput.files[0]);
const response = await fetch('https://resumeparser.p.rapidapi.com/api/resume', {
method: 'POST',
headers: {
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'resumeparser.p.rapidapi.com'
},
body: formData
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error || `API error: ${response.status}`);
}
const data = await response.json();
console.log('Parsed resume:', data);
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
async function parseResume(filePath) {
const form = new FormData();
form.append('resume', fs.createReadStream(filePath));
try {
const response = await axios.post(
'https://resumeparser.p.rapidapi.com/api/resume',
form,
{
headers: {
...form.getHeaders(),
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'resumeparser.p.rapidapi.com'
}
}
);
return response.data;
} catch (error) {
console.error('Error parsing resume:', error.response?.data || error.message);
throw error;
}
}
// Usage
parseResume('./resume.pdf')
.then(data => console.log(JSON.stringify(data, null, 2)))
.catch(error => console.error(error));
import requests
import json
def parse_resume(file_path):
url = "https://resumeparser.p.rapidapi.com/api/resume"
headers = {
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "resumeparser.p.rapidapi.com"
}
with open(file_path, 'rb') as f:
files = {'resume': f}
response = requests.post(url, headers=headers, files=files)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"Error: {response.status_code} - {response.text}")
# Usage
try:
result = parse_resume('resume.pdf')
print(json.dumps(result, indent=2))
except Exception as e:
print(f"Error parsing resume: {e}")
<!DOCTYPE html>
<html>
<head>
<title>Resume Parser</title>
</head>
<body>
<form id="resumeForm">
<input type="file" id="resumeFile" accept=".pdf,.docx,.txt,.rtf" required>
<button type="submit">Parse Resume</button>
</form>
<pre id="result"></pre>
<script>
document.getElementById('resumeForm').addEventListener('submit', async (e) => {
e.preventDefault();
const fileInput = document.getElementById('resumeFile');
const formData = new FormData();
formData.append('resume', fileInput.files[0]);
try {
const response = await fetch('https://resumeparser.p.rapidapi.com/api/resume', {
method: 'POST',
headers: {
'X-RapidAPI-Key': 'YOUR_RAPIDAPI_KEY',
'X-RapidAPI-Host': 'resumeparser.p.rapidapi.com'
},
body: formData
});
const data = await response.json();
document.getElementById('result').textContent = JSON.stringify(data, null, 2);
} catch (error) {
document.getElementById('result').textContent = 'Error: ' + error.message;
}
});
</script>
</body>
</html>