Getting Started
The EmployJoy Partner API lets ATS platforms submit candidates to EmployJoy-managed jobs, track application status, and receive real-time webhook notifications when hiring decisions are made.
Prerequisites
- API key — issued by an EmployJoy operator. You'll receive a
pek_live_*key for production and optionally apek_test_*key for sandbox testing. - Webhook endpoint (optional) — a publicly-reachable HTTPS URL where we'll POST event notifications. Configured at key issuance time.
Base URL
https://api.employjoy.ai/api/v1/external/All endpoints are prefixed with this base URL.
Your first API call
List available jobs at companies that have granted you access:
bash
curl -X GET "https://api.employjoy.ai/api/v1/external/jobs" \
-H "Authorization: Bearer YOUR_API_KEY_HERE"javascript
const response = await fetch('https://api.employjoy.ai/api/v1/external/jobs', {
headers: { 'Authorization': 'Bearer YOUR_API_KEY_HERE' },
});
const { data, next_cursor } = await response.json();
console.log(`Found ${data.length} jobs`);python
import requests
response = requests.get(
'https://api.employjoy.ai/api/v1/external/jobs',
headers={'Authorization': 'Bearer YOUR_API_KEY_HERE'},
)
data = response.json()
print(f"Found {len(data['data'])} jobs")Expected response
json
{
"data": [
{
"id": "job_12345",
"title": "Janitor",
"company": { "id": "co_67", "name": "Acme Cleaning" },
"location": { "city": "Tampa", "state": "FL", "country": "US" },
"compensation": { "type": "hourly", "min": 18, "max": 22, "currency": "USD" },
"schedule": "full_time",
"status": "open",
"headcount": { "total": null, "filled": 2 },
"createdAt": "2026-05-20T14:00:00Z",
"updatedAt": "2026-05-22T09:30:00Z",
"applicationFormSchema": [
{ "key": "drivers_license", "label": "Do you have a valid driver's license?", "type": "boolean", "required": true }
]
}
],
"next_cursor": "eyJsYXN0VXBkYXRlZEF0IjoiMjAyNi..."
}Next steps
- Submit an application — POST a candidate to a job
- Set up webhooks — receive real-time hiring decisions
- Explore authentication — key lifecycle, rotation, best practices