Get a single published job
const url = 'https://api.atlasthq.com/api/public/v1/jobs/abc123def456';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.atlasthq.com/api/public/v1/jobs/abc123def456 \ --header 'Authorization: Bearer <token>'Returns the full public detail for a published job identified by its publicId. Returns 404 for unknown, unpublished, or cross-org publicId values (no existence leak).
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Example
abc123def456The public identifier of the job
Responses
Section titled “ Responses ”Full public job detail
object
Job internal ID
URL-friendly public job identifier
Job title
One-line summary of locations, derived by the server
The places this job is open in, in display order, each with its own work arrangement. Empty when the job has no locations. location is the server-derived one-line summary of this list.
object
Job location row id
ISO 3166-1 alpha-2 country code
Country name (English)
GeoNames city id; null for a country-wide location
City name; null for a country-wide location
How the role is worked in this location
Position in the job’s location list, starting at 0
Department
Employment type
Seniority level
Role overview
Key responsibilities
Required skills
Preferred qualifications
Minimum salary
Maximum salary
Salary currency code
How the role states its compensation. UNPAID covers unpaid internships and volunteer roles.
Recruiter’s explanation of why the role is unpaid. Present when compensationType is UNPAID.
Benefits description
Years of experience required
Primary language
Education level
Work authorization requirements
Knockout screening questions
object
Public URL for the job detail page (attached by API layer)
Public URL for the job application form (attached by API layer)
Example
{ "id": "job-550e8400-e29b-41d4-a716-446655440000", "publicId": "abc123def456", "jobTitle": "Senior Software Engineer", "location": "Barcelona, Spain (Hybrid) · Spain (Remote)", "locations": [ { "id": "jlc-550e8400-e29b-41d4-a716-446655440000", "countryCode": "ES", "countryName": "Spain", "cityId": 3128760, "cityName": "Barcelona", "workArrangement": "HYBRID", "sortOrder": 0 }, { "id": "jlc-6fa459ea-ee8a-3ca4-894e-db77e160355e", "countryCode": "ES", "countryName": "Spain", "cityId": null, "cityName": null, "workArrangement": "REMOTE", "sortOrder": 1 } ], "department": "Engineering", "type": "Full-time", "seniorityLevel": "Senior", "roleOverview": "We are looking for...", "minSalary": 80000, "maxSalary": 120000, "currency": "USD", "compensationType": "PAID", "compensationNote": "Volunteer role with travel and lunch expenses reimbursed.", "yearsExperience": 5, "primaryLanguage": "English", "educationLevel": "Bachelor's degree", "knockoutQuestions": [ { "id": "kq-abc123", "question": "Do you have a valid EU work permit?", "required": true, "type": "boolean" } ], "jobUrl": "https://acme.careers.atlasthq.com/jobs/abc123def456", "applyUrl": "https://acme.careers.atlasthq.com/jobs/abc123def456/apply"}Missing or invalid API key
Organisation plan does not include the public API
Job not found, unpublished, or belongs to another organisation
Rate limit exceeded (60 req/min per key)