# Quickstart

> Create an API key, check connectivity and parse a resume with cURL, Python or TypeScript in about five minutes.

Source: https://onlineresumeparser.com/api-docs/quickstart · Markdown: https://onlineresumeparser.com/api-docs/quickstart.md

### 1. Create an API key

[Sign up](https://onlineresumeparser.com/auth/signup) (the Free plan includes 50 credits a month), then create a key in [Dashboard → API keys](https://onlineresumeparser.com/dashboard/api-keys). Store it in an environment variable on your server:

```bash
export HIRELAYER_API_KEY="sk_xxxxxx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

### 2. Check connectivity

The health check needs no key and costs nothing:

**cURL**

```bash
curl https://onlineresumeparser.com/api/v1/health
```

**Python**

```python
import requests

response = requests.get(
    "https://onlineresumeparser.com/api/v1/health",
    timeout=10,
)
response.raise_for_status()

data = response.json()
print(data["status"])
```

**TypeScript**

```typescript
const response = await fetch('https://onlineresumeparser.com/api/v1/health', {
  signal: AbortSignal.timeout(10_000),
})

if (!response.ok) {
  throw new Error(`HireLayer ${response.status}: ${await response.text()}`)
}

const data = await response.json()
console.log(data.status)
```

**Response**

```json
{
  "status": "healthy",
  "service": "HireLayer API",
  "skills_loaded": 664,
  "timestamp": "2026-10-01T09:30:12.417Z"
}
```

### 3. Parse a resume

Send any resume file as `file`. Python needs `pip install requests`; TypeScript runs on Node.js 18+ with no dependency: save it as `parse.mts` and run `npx tsx parse.mts`.

**cURL**

```bash
curl -X POST https://onlineresumeparser.com/api/v3/parser \
  -H "X-API-Key: $HIRELAYER_API_KEY" \
  -F "file=@resume.pdf;type=application/pdf" \
  -F "application_id=app_123"
```

**Python**

```python
import os

import requests

with open("resume.pdf", "rb") as file:
    response = requests.post(
        "https://onlineresumeparser.com/api/v3/parser",
        headers={"X-API-Key": os.environ["HIRELAYER_API_KEY"]},
        files={"file": ("resume.pdf", file, "application/pdf")},
        data={
            "application_id": "app_123",
        },
        timeout=150,
    )
response.raise_for_status()

data = response.json()
print(data["info_candidate"]["full_name"])
```

**TypeScript**

```typescript
import { readFile } from 'node:fs/promises'

const form = new FormData()
form.append(
  'file',
  new Blob([await readFile('resume.pdf')], { type: 'application/pdf' }),
  'resume.pdf'
)
form.append('application_id', 'app_123')

const response = await fetch('https://onlineresumeparser.com/api/v3/parser', {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.HIRELAYER_API_KEY!,
  },
  body: form,
  signal: AbortSignal.timeout(150_000),
})

if (!response.ok) {
  throw new Error(`HireLayer ${response.status}: ${await response.text()}`)
}

const data = await response.json()
console.log(data.info_candidate.full_name)
```

The call is synchronous and usually takes about 35 seconds. A successful parse costs 1 credit.

### 4. Read the result

**Response (excerpt)**

```json
{
  "status": "success",
  "request_id": "6f1c2a9e-4b7d-4c3e-9a51-2f8d7e6b1c04",
  "info_candidate": {
    "full_name": "Alex Morgan",
    "email": "alex.morgan@example.com",
    "job_title": "Senior Software Engineer",
    "experience_level": "5 to 10 years"
  },
  "work_experiences": […],
  "skills": […]
}
```

Every field is described in the [CV Extract reference](https://onlineresumeparser.com/api-docs/extract.md#parse-resume-response). Errors return a non-2xx status with an `error` message: see [Errors and retries](https://onlineresumeparser.com/api-docs/errors.md).

## Next steps

- [Screening pipeline](https://onlineresumeparser.com/api-docs/screening-pipeline.md): Chain Extract, Job Extract, Rank and Match.
- [Build with AI agents](https://onlineresumeparser.com/api-docs/ai-agents.md): Let Claude Code, Codex or Cursor write the integration.

## Next

- [Authentication](https://onlineresumeparser.com/api-docs/authentication.md): Authenticate every request with an X-API-Key header. Create, rotate and revoke keys from the dashboard.
- [HireLayer CV Extract](https://onlineresumeparser.com/api-docs/extract.md): Parse a resume file into structured candidate JSON with one multipart request: contact details, experience, education, languages and typed skills.
