Developer API
Integrate resumAI’s CV intelligence into your ATS, CRM, hiring pipeline, spreadsheet workflows, or BI stack. EU-hosted, GDPR-compliant, EUR-billed.
Authentication
All authenticated endpoints accept a Bearer API key in the Authorization header:
Authorization: Bearer rsm_live_<your-key>API keys are issued per user. Access is currently invitation-only — request developer access below. Once granted, generate keys from your account settings inside the app.
Endpoints
Base URL: https://resumai.eu
| Method | Path | Summary | Auth |
|---|---|---|---|
| POST | /api/v1/files/upload | Upload a CV (PDF, DOCX, image). Costs 1 credit per upload. | API key (Bearer) |
| GET | /api/v1/files/assets | List your uploaded CVs. | API key (Bearer) |
| GET | /api/v1/files/assets/{asset_id}/status | Check processing status for a single asset. | API key (Bearer) |
| GET | /api/v1/data/master/{asset_id} | Fetch the structured (parsed + normalized) data for an asset. | API key (Bearer) |
| GET | /api/v1/data/display | List flat display rows (paginated, filterable). | API key (Bearer) |
Examples
1. Upload a CV
curl -X POST https://resumai.eu/api/v1/files/upload \ -H "Authorization: Bearer rsm_live_xxx" \ -F "file=@candidate-cv.pdf" \ -F "tags=engineering" \ -F "tags=senior" \ -F "locale=en_US"
Returns the asset id and the parent task id you’ll poll for status.
2. Fetch the parsed data
curl https://resumai.eu/api/v1/data/master/<asset_id> \ -H "Authorization: Bearer rsm_live_xxx"
Returns the normalized structured payload: contact, experience, education, skills, languages.
Error codes
| Code | Meaning | When you’ll see it |
|---|---|---|
| 400 | Validation error | Request body or query parameters are malformed. |
| 401 | Unauthorized | API key missing or invalid. |
| 402 | Payment required | Wallet has zero credits; top up before uploading. |
| 403 | Forbidden | You do not have access to that resource (wrong scope). |
| 404 | Not found | Asset / resource does not exist. |
| 409 | Conflict | Idempotency conflict (e.g. duplicate upload of the same hash). |
| 413 | Payload too large | File exceeds the 10 MB upload limit. |
| 415 | Unsupported media type | File is not PDF, DOCX, or a supported image format. |
| 429 | Too many requests | Rate limit exceeded. See Retry-After header. |
| 500 | Internal error | Unexpected server error. Retry with exponential backoff. |
| 503 | Service unavailable | Worker queue is saturated. Retry after a short delay. |
Rate limits
- Free tier (developer key): 60 requests/min, 1,000 requests/day.
- Paid tier: 600 requests/min, 50,000 requests/day. Higher on request.
- 429 responses include a
Retry-Afterheader in seconds. Implement exponential backoff with jitter.
Tooling
Request developer access
The developer API is currently invitation-only while we onboard early integrators. Email support@resumai.eu with a one-paragraph use-case, expected volume, and any integration tooling you’re using. We typically reply within one business day.
Email support@resumai.euAll API endpoints are GDPR-compliant and EU-hosted. See our DPA and Privacy Policy for details on data handling, sub-processors, and retention.