API Reference

Programmatic access to candidates, jobs, applications, and background checks.

The CONFIRM API lets you read and manage your organization’s candidates, jobs, applications, and background checks from your own systems.

The API is in Early Access. Access is enabled per organization — contact CONFIRM to enable API access for your org before making requests.

Base URL

https://api.confirm.global

All endpoints documented here are under the /api/v1/ prefix.

Authentication

Every request must include a bearer token:

Authorization: Bearer <token>

Tokens are issued per user session today (the same JWT your CONFIRM login uses). Dedicated API keys are planned for a future release; until then, contact CONFIRM for help obtaining a token for integration use.

Organization scoping

Requests operate within your organization. Your token determines which organization you act as, and you can only read or modify candidates, jobs, applications, and background checks that belong to it. Your user’s role also determines which actions are allowed — for example, write endpoints require write permission on the relevant resource.

Resources

ResourceDescription
CandidatesPeople who applied to your jobs: list and search, update contact details, view activity timelines, advance to interview scheduling, send evaluations, and manage the blocklist.
JobsRole definitions: create, update, copy, and close jobs, list a job’s applications, and manage per-job knowledge base documents.
ApplicationsA candidate’s application to a specific job: read full detail, move through pipeline stages, schedule and reschedule interviews, reject, hire, or withdraw.
Background ChecksInitiate background checks for an application, track their status, and list available check services and pipelines.

Example: list candidates

$curl "https://api.confirm.global/api/v1/candidates?limit=10&page=1" \
> -H "Authorization: Bearer $CONFIRM_TOKEN"

A successful response returns a paginated list:

1{
2 "data": [
3 {
4 "candidate_id": "6f4a1c2e-...",
5 "first_name": "Jordan",
6 "last_name": "Lee",
7 "email": "jordan@example.com",
8 "phone": "+15555550123",
9 "source": "indeed"
10 }
11 ],
12 "pagination": { "total": 128, "page": 1, "limit": 10, "total_pages": 13 }
13}

Errors

Errors return a consistent envelope with a machine-readable code and a request id you can share with support:

1{
2 "error": {
3 "code": "CANDIDATE_NOT_FOUND",
4 "message": "Candidate not found",
5 "request_id": "req_abc123"
6 }
7}