Skip to content

List published jobs

GET
/api/public/v1/jobs
curl --request GET \
--url 'https://api.atlasthq.com/api/public/v1/jobs?page=1&pageSize=20' \
--header 'Authorization: Bearer <token>'

Returns a paginated list of the organisation’s published jobs. Only jobs where isPublished = true are returned. Pagination is zero-latency on empty pages (returns 200 with { data: [], total: 0 }).

page
number
Example
1

Page number (1-based, default 1, min 1)

pageSize
number
Example
20

Items per page (default 20, min 1, max 100)

Paginated list of published jobs

Media type application/json
object
data
Array<object>
object
id
required

Job internal ID

string
publicId
required

URL-friendly public job identifier

string
jobTitle
required

Job title

string
location
required

One-line summary of locations, derived by the server

string
nullable
locations
required

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.

Array<object>
object
id
required

Job location row id

string
countryCode
required

ISO 3166-1 alpha-2 country code

string
countryName
required

Country name (English)

string
cityId
required

GeoNames city id; null for a country-wide location

number
nullable
cityName
required

City name; null for a country-wide location

string
nullable
workArrangement
required

How the role is worked in this location

string
Allowed values: ON_SITE HYBRID REMOTE
sortOrder
required

Position in the job’s location list, starting at 0

number
department
required

Department

string
nullable
type
required

Employment type

string
nullable
seniorityLevel
required

Seniority level

string
nullable
minSalary
required

Minimum salary

number
nullable
maxSalary
required

Maximum salary

number
nullable
currency
required

Salary currency code

string
nullable
compensationType
required

How the role states its compensation. UNPAID covers unpaid internships and volunteer roles.

string
Allowed values: PAID UNPAID UNDISCLOSED
compensationNote
required

Recruiter’s explanation of why the role is unpaid. Present when compensationType is UNPAID.

string
nullable
jobUrl
required

Public URL for the job detail page (attached by API layer)

string
nullable
applyUrl
required

Public URL for the job application form (attached by API layer)

string
nullable
page
integer
pageSize
integer
total
integer
Example
{
"data": [
{
"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",
"minSalary": 80000,
"maxSalary": 120000,
"currency": "USD",
"compensationType": "PAID",
"compensationNote": "Volunteer role with travel and lunch expenses reimbursed.",
"jobUrl": "https://acme.careers.atlasthq.com/jobs/abc123def456",
"applyUrl": "https://acme.careers.atlasthq.com/jobs/abc123def456/apply"
}
],
"page": 1,
"pageSize": 20,
"total": 42
}

Missing or invalid API key

Organisation plan does not include the public API

Rate limit exceeded (60 req/min per key)