Skip to main content
POST
cURL

Authorizations

X-Api-Key
string
header
required

API key provided by Jobo

Body

application/json

Cursor-paginated export request. The cursor preserves the filters and batch size from the first request; start a new scan to change them.

locations
object[] | null
sources
string[] | null
work_models
enum<string>[] | null

Filter by work model: remote, hybrid, onsite. null = all jobs

Available options:
remote,
hybrid,
onsite
employment_types
enum<string>[] | null

Filter by employment type. null = all jobs

Available options:
full-time,
part-time,
contract,
internship,
freelance,
temporary
experience_levels
enum<string>[] | null

Filter by experience level. null = all jobs

Available options:
intern,
entry,
mid,
senior,
lead,
executive
languages
string[] | null

Filter by description language, as ISO 639-1 codes (en, de, fr). Language names and locales (English, en-US) are mapped to their code. null = all jobs.

posted_after
string<date-time> | null

Return jobs whose employer posting time or first-indexed time is on or after this UTC timestamp. Use updated_after when edits matter.

include_reactivated
boolean
default:false

Also return jobs that expired and were reactivated (rediscovered and re-indexed) on or after posted_after. A reactivated job keeps its original posting and creation dates, so posted_after alone never re-delivers it.

Only changes the posted_after filter: it has no effect without posted_after, and an updated_after sync does not need it — reactivation re-indexes the job, so updated_after already returns it. When both posted_after and updated_after are set, a job must match both.

description_format
enum<string>
default:markdown

Format of each job's description. markdown (default) returns it as stored. html renders it to HTML on the fly: raw HTML in the source is escaped and only http(s), mailto and relative URLs are kept. Read from every request, including cursor continuations.

Available options:
markdown,
html
updated_after
string<date-time> | null

Return jobs created, updated or re-indexed on or after this UTC timestamp. Includes jobs that expired and were reactivated in the window (reactivation re-indexes the job), so syncs that use updated_after don't need include_reactivated.

stable_scan
boolean
default:true

Page by immutable creation time rather than update recency (default). Stable scans cannot skip or duplicate records when jobs are updated or deleted mid-scan. Set false explicitly for the legacy update-recency ordering.

cursor
string | null

Opaque cursor from next_cursor. Omit on the first request.

batch_size
integer
default:1000
Required range: 1 <= x <= 1000

Response

Batch of jobs with cursor for next page

jobs
object[]
required
next_cursor
string | null
required
has_more
boolean
required
estimated_total
integer<int64> | null

Estimated number of jobs the scan will deliver. Present on the first page of a scan only; omitted on continuation pages.