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

MethodPathSummaryAuth
POST/api/v1/files/uploadUpload a CV (PDF, DOCX, image). Costs 1 credit per upload.API key (Bearer)
GET/api/v1/files/assetsList your uploaded CVs.API key (Bearer)
GET/api/v1/files/assets/{asset_id}/statusCheck 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/displayList 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

CodeMeaningWhen you’ll see it
400Validation errorRequest body or query parameters are malformed.
401UnauthorizedAPI key missing or invalid.
402Payment requiredWallet has zero credits; top up before uploading.
403ForbiddenYou do not have access to that resource (wrong scope).
404Not foundAsset / resource does not exist.
409ConflictIdempotency conflict (e.g. duplicate upload of the same hash).
413Payload too largeFile exceeds the 10 MB upload limit.
415Unsupported media typeFile is not PDF, DOCX, or a supported image format.
429Too many requestsRate limit exceeded. See Retry-After header.
500Internal errorUnexpected server error. Retry with exponential backoff.
503Service unavailableWorker 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-After header 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.eu

All API endpoints are GDPR-compliant and EU-hosted. See our DPA and Privacy Policy for details on data handling, sub-processors, and retention.