Skip to main content

Retrieve Resume

GET /api/v1/resumes/:id

Retrieve a single resume's complete data in the Enhancv analyzer format. This returns the same structure expected by the Create Resume endpoint.

Request

Headers

HeaderValueRequired
AuthorizationBearer YOUR_API_KEYREQUIRED

Path Parameters

ParameterTypeDescription
idstringResume ID (from List Resumes endpoint) REQUIRED

Response

Success Response

Status Code: 200 OK

{
  "header": {
    "name": "John Doe",
    "title": "Senior Software Engineer",
    "email": "john@example.com",
    "phone": "+1 234 567 8900",
    "location": "San Francisco, CA"
  },
  "sections": {
    "experiences": {
      "name": "Experience",
      "column": 0,
      "order": 0,
      "items": [
        {
          "workplace": "Tech Company Inc",
          "position": "Senior Software Engineer",
          "location": "San Francisco, CA",
          "dateRange": {
            "fromYear": 2020,
            "fromMonth": 0,
            "toYear": 2024,
            "toMonth": 2
          },
          "description": "Led development of key features",
          "bullets": [
            "Improved system performance by 40%",
            "Mentored 5 junior developers"
          ]
        }
      ]
    },
    "educations": {
      "name": "Education",
      "column": 0,
      "order": 1,
      "items": [
        {
          "institution": "University of California",
          "degree": "Bachelor of Science in Computer Science",
          "location": "Berkeley, CA",
          "dateRange": {
            "fromYear": 2012,
            "fromMonth": 8,
            "toYear": 2016,
            "toMonth": 4
          }
        }
      ]
    },
    "industryExperiences": {
      "name": "Skills",
      "column": 1,
      "order": 2,
      "items": [
        {
          "name": "JavaScript",
          "level": 5
        }
      ]
    }
  },
  "title": "Software Engineer Resume",
  "style": {
    "layout": "double",
    "colors": ["#000000", "#008CFF"]
  }
}

Response Structure

The response contains the complete resume data in analyzer format:

FieldTypeDescription
headerobjectContact information and personal details
sectionsobjectResume sections keyed by section type. Each section includes column (0, 1, or 2), order (display order), name, and items
titlestringResume title (optional)
styleobjectVisual styling configuration including layout, colors, fontBody, fontHeading, hideBranding, isLetterSize, and more (optional)

Examples

Basic Request

curl https://api.enhancv.com/api/v1/resumes/64f1a2b3c4d5e6f7g8h9i0j1 \
  -H "Authorization: Bearer enh_live_your_api_key_here"
const resumeId = '64f1a2b3c4d5e6f7g8h9i0j1';

const response = await fetch(
  `https://api.enhancv.com/api/v1/resumes/${resumeId}`,
  {
    headers: {
      'Authorization': 'Bearer enh_live_your_api_key_here'
    }
  }
);

const resume = await response.json();
console.log(resume);
import requests

resume_id = '64f1a2b3c4d5e6f7g8h9i0j1'

response = requests.get(
    f'https://api.enhancv.com/api/v1/resumes/{resume_id}',
    headers={'Authorization': 'Bearer enh_live_your_api_key_here'}
)

resume = response.json()
print(resume)

Retrieve and Modify

// Retrieve existing resume
const response = await fetch(
  `https://api.enhancv.com/api/v1/resumes/${resumeId}`,
  {
    headers: {
      'Authorization': `Bearer ${apiKey}`
    }
  }
);

const resume = await response.json();

// Modify the resume
resume.title = 'Updated Resume Title';
resume.header.title = 'Lead Software Engineer';

// Create a new resume with modifications
const createResponse = await fetch(
  'https://api.enhancv.com/api/v1/resumes',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${apiKey}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(resume)
  }
);

const newResume = await createResponse.json();
console.log('Created new resume:', newResume.id);

Error Responses

401 Unauthorized

Missing or invalid API key.

{
  "error": "Invalid API key",
  "status": 401
}

404 Not Found

Resume not found or doesn't belong to your account.

{
  "error": "Resume not found",
  "status": 404
}

Notes

  • The response format matches the input format expected by the Create Resume endpoint
  • Field visibility: Only fields that are visible on the resume are returned. Hidden fields (where visibility is set to false) are automatically omitted
  • All internal fields (like record, show* fields) are automatically removed from the response
  • Use this endpoint to retrieve a resume, modify it, and create a new version
  • Cover letters are not accessible through this endpoint
  • The response includes all sections and their complete data

Field Visibility Behavior

When you retrieve a resume, the API only returns fields that are visible on the resume:

// If a resume was created with some fields hidden:
{
  "sections": {
    "experiences": {
      "items": [{
        "workplace": "Google",
        "position": "Engineer",
        "description": "",  // Empty - hidden
        "location": "NYC"
      }]
    }
  }
}

// The retrieve response will omit hidden fields:
{
  "sections": {
    "experiences": {
      "items": [{
        "workplace": "Google",
        "position": "Engineer",
        "location": "NYC"
        // description is omitted because it's hidden
      }]
    }
  }
}

This ensures the retrieved data accurately represents what's actually displayed on the resume.

Resume Structure Reference

For detailed information about the resume data structure returned by this endpoint, including:

  • Available section types (27 types including experiences, educations, skills, etc.)
  • Complete field definitions for each section type
  • DateRange object structure
  • Style object configuration
  • Available icons (230+ icons)

Please refer to the Resume Structure Reference page.