API Reference/Jobs

List jobs

Returns a keyset-paginated list of open, commercially cleared jobs matching the supplied filters. Filters combine with AND across dimensions and OR within each repeated dimension.

GET/v0/jobs

Authentication

bearerAuth · http bearer

Organisation API key supplied only through the Authorization header.

Required scopes: jobs:read.

Parameters

NameTypeDescription
queryoptionalstringquery

Full-text query matched against indexed job text and title similarity. Normalized to Unicode NFC with folded whitespace; 1–200 characters.

Schema and examples
string

Full-text query matched against indexed job text and title similarity. Normalized to Unicode NFC with folded whitespace; 1–200 characters.

Examples
["software engineer"]
Maximum length
200
Minimum length
1

example-1: software engineer

rolesoptionalstring[]query

Stable role family or specialism codes from the versioned Luranta role taxonomy. Repeat the parameter to match any supplied code; maximum 50. Discover values with GET /v0/taxonomies/roles.

Browse available values

Serialization: form; explode true

Schema and examples
string[]

Stable role family or specialism codes from the versioned Luranta role taxonomy. Repeat the parameter to match any supplied code; maximum 50. Discover values with GET /v0/taxonomies/roles.

Default
[]
Examples
[["software-engineering"]]
Maximum items
50
Items
string
Maximum length
160
Minimum length
1
Pattern
^[a-z0-9]+(?:[-_.][a-z0-9]+)*$

example-1: ["software-engineering"]

locationsoptionalstring[]query

Canonical location IDs: region:EMEA, region:APAC, region:AMERICAS, country:<ISO 3166-1 alpha-2>, admin:<code>, or city:geonames:<ID>. Metro IDs are accepted when present in the location catalogue. Repeat to match any selector; maximum 300.

Browse available values

Serialization: form; explode true

Schema and examples
string[]

Canonical location IDs: region:EMEA, region:APAC, region:AMERICAS, country:<ISO 3166-1 alpha-2>, admin:<code>, or city:geonames:<ID>. Metro IDs are accepted when present in the location catalogue. Repeat to match any selector; maximum 300.

Default
[]
Examples
[["country:GB"]]
Maximum items
300
Items
string
Maximum length
240
Minimum length
1

example-1: ["country:GB"]

companiesoptionalstring<uuid>[]query

Company UUIDv7 identifiers. Repeat the parameter to match any supplied company; maximum 20.

Serialization: form; explode true

Schema and examples
string<uuid>[]

Company UUIDv7 identifiers. Repeat the parameter to match any supplied company; maximum 20.

Default
[]
Examples
[["019bf6e2-a668-7a1b-811d-c5845c739754"]]
Maximum items
20
Items
string<uuid>
Format
uuid
Pattern
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$

example-1: ["019bf6e2-a668-7a1b-811d-c5845c739754"]

industriesoptionalstring[]query

Stable industry codes assigned to the hiring company from the versioned Luranta industry taxonomy. Repeat the parameter to match any supplied code; maximum 50. Discover values with GET /v0/taxonomies/industries.

Browse available values

Serialization: form; explode true

Schema and examples
string[]

Stable industry codes assigned to the hiring company from the versioned Luranta industry taxonomy. Repeat the parameter to match any supplied code; maximum 50. Discover values with GET /v0/taxonomies/industries.

Default
[]
Examples
[["technology"]]
Maximum items
50
Items
string
Maximum length
160
Minimum length
1
Pattern
^[a-z0-9]+(?:[-_.][a-z0-9]+)*$

example-1: ["technology"]

toolsoptionalstring[]query

Stable tool or technology codes identified for the job. Repeat the parameter to match any supplied code; discover evolving values with GET /v0/tools?query=...; maximum 50.

Browse available values

Serialization: form; explode true

Schema and examples
string[]

Stable tool or technology codes identified for the job. Repeat the parameter to match any supplied code; discover evolving values with GET /v0/tools?query=...; maximum 50.

Default
[]
Examples
[["typescript"]]
Maximum items
50
Items
string
Maximum length
160
Minimum length
1
Pattern
^[a-z0-9]+(?:[-_.][a-z0-9]+)*$

example-1: ["typescript"]

work_arrangementsoptionalstring[]query

Work arrangements: on_site, hybrid, or remote. Repeat the parameter to match any supplied value; maximum 50.

Available options
on_sitehybridremote

Serialization: form; explode true

Schema and examples
string[]

Work arrangements: on_site, hybrid, or remote. Repeat the parameter to match any supplied value; maximum 50.

Default
[]
Examples
[["remote"]]
Maximum items
50
Items
string
Allowed values
["on_site","hybrid","remote"]

example-1: ["remote"]

schedulesoptionalstring[]query

Employment schedules: full-time or part-time. Repeat the parameter to match any supplied value; maximum 50.

Available options
full-timepart-time

Serialization: form; explode true

Schema and examples
string[]

Employment schedules: full-time or part-time. Repeat the parameter to match any supplied value; maximum 50.

Default
[]
Examples
[["full-time"]]
Maximum items
50
Items
string
Allowed values
["full-time","part-time"]

example-1: ["full-time"]

engagementsoptionalstring[]query

Engagement types: permanent, fixed-term, contract-freelance, temporary-seasonal-casual, internship, apprenticeship, or volunteer. Repeat to match any supplied value; maximum 50.

Available options
permanentfixed-termcontract-freelancetemporary-seasonal-casualinternshipapprenticeshipvolunteer

Serialization: form; explode true

Schema and examples
string[]

Engagement types: permanent, fixed-term, contract-freelance, temporary-seasonal-casual, internship, apprenticeship, or volunteer. Repeat to match any supplied value; maximum 50.

Default
[]
Examples
[["permanent"]]
Maximum items
50
Items
string
Allowed values
["permanent","fixed-term","contract-freelance","temporary-seasonal-casual","internship","apprenticeship","volunteer"]

example-1: ["permanent"]

experience_minoptionalintegerquery

Lower bound of the acceptable experience range in whole years, from 0 to 20. Matches a stated job range that overlaps this bound.

Schema and examples
integer

Lower bound of the acceptable experience range in whole years, from 0 to 20. Matches a stated job range that overlaps this bound.

Examples
[2]
Maximum
20
Minimum
0

example-1: 2

experience_maxoptionalintegerquery

Upper bound of the acceptable experience range in whole years, from 0 to 20; 20 includes jobs requiring 20 years or more. Matches a stated job range that overlaps this bound.

Schema and examples
integer

Upper bound of the acceptable experience range in whole years, from 0 to 20; 20 includes jobs requiring 20 years or more. Matches a stated job range that overlaps this bound.

Examples
[5]
Maximum
20
Minimum
0

example-1: 5

include_unstated_experienceoptionalbooleanquery

When an experience bound is present, include jobs without a numeric experience requirement. Defaults to true and has no effect without an experience bound.

Schema and examples
boolean

When an experience bound is present, include jobs without a numeric experience requirement. Defaults to true and has no effect without an experience bound.

Default
true
Examples
[true]

example-1: true

visa_sponsorshipoptionalstring[]query

Set to available to return only jobs explicitly marked as offering visa sponsorship.

Available options
available

Serialization: form; explode true

Schema and examples
string[]

Set to available to return only jobs explicitly marked as offering visa sponsorship.

Default
[]
Examples
[["available"]]
Maximum items
50
Items
string
Constant
available

example-1: ["available"]

languagesoptionalstring[]query

Canonical BCP 47 language tags. A job must use a supplied listing language and satisfy each resolved language-requirement group with a supplied language. Repeat for alternatives; maximum 50.

Serialization: form; explode true

Schema and examples
string[]

Canonical BCP 47 language tags. A job must use a supplied listing language and satisfy each resolved language-requirement group with a supplied language. Repeat for alternatives; maximum 50.

Default
[]
Examples
[["en-GB"]]
Maximum items
50
Items
string
Maximum length
35
Minimum length
2

example-1: ["en-GB"]

compensation_metricoptionalstringquery

Annual USD metric used by compensation bounds and sorting: base salary or target-cash. Defaults to base.

Available options
basetarget-cash
Schema and examples
string

Annual USD metric used by compensation bounds and sorting: base salary or target-cash. Defaults to base.

Allowed values
["base","target-cash"]
Default
base
Examples
["base"]

example-1: base

compensation_minoptionalnumberquery

Minimum annual USD threshold for the selected compensation metric. Matches a package whose upper bound, or lower bound when no upper bound exists, meets the threshold.

Schema and examples
number

Minimum annual USD threshold for the selected compensation metric. Matches a package whose upper bound, or lower bound when no upper bound exists, meets the threshold.

Examples
[60000]
Minimum
0

example-1: 60000

compensation_maxoptionalnumberquery

Maximum annual USD threshold for the selected compensation metric. Matches a package whose lower bound, or upper bound when no lower bound exists, does not exceed the threshold.

Schema and examples
number

Maximum annual USD threshold for the selected compensation metric. Matches a package whose lower bound, or upper bound when no lower bound exists, does not exceed the threshold.

Examples
[90000]
Minimum
0

example-1: 90000

bonusoptionalbooleanquery

When true, require a matching compensation package that discloses a bonus. Defaults to false, which does not filter on bonuses.

Schema and examples
boolean

When true, require a matching compensation package that discloses a bonus. Defaults to false, which does not filter on bonuses.

Default
false
Examples
[true]

example-1: true

commissionoptionalbooleanquery

When true, require a matching compensation package that discloses commission. Defaults to false, which does not filter on commission.

Schema and examples
boolean

When true, require a matching compensation package that discloses commission. Defaults to false, which does not filter on commission.

Default
false
Examples
[true]

example-1: true

equityoptionalbooleanquery

When true, require a matching compensation package that offers equity. Defaults to false, which does not filter on equity.

Schema and examples
boolean

When true, require a matching compensation package that offers equity. Defaults to false, which does not filter on equity.

Default
false
Examples
[true]

example-1: true

freshnessoptionalstringquery

Limits jobs by published_at, falling back to first_seen_at: any, 7-days, 30-days, 90-days, or 365-days. Defaults to any.

Available options
any7-days30-days90-days365-days
Schema and examples
string

Limits jobs by published_at, falling back to first_seen_at: any, 7-days, 30-days, 90-days, or 365-days. Defaults to any.

Allowed values
["any","7-days","30-days","90-days","365-days"]
Default
any
Examples
["30-days"]

example-1: 30-days

sortoptionalstringquery

Ordering field: updated and recommended use non-personalized publication or first-seen time; compensation uses the selected metric midpoint. Defaults to updated.

Available options
recommendedcompensationupdated
Schema and examples
string

Ordering field: updated and recommended use non-personalized publication or first-seen time; compensation uses the selected metric midpoint. Defaults to updated.

Allowed values
["recommended","compensation","updated"]
Default
updated
Examples
["updated"]

example-1: updated

directionoptionalstringquery

Sort direction for the selected ordering field. UUIDv7 ID breaks ties. Defaults to desc.

Available options
ascdesc
Schema and examples
string

Sort direction for the selected ordering field. UUIDv7 ID breaks ties. Defaults to desc.

Allowed values
["asc","desc"]
Default
desc
Examples
["desc"]

example-1: desc

cursoroptionalstringquery

Opaque keyset cursor from next_cursor. Reuse it with unchanged filters, sort, and direction; limit may change. Expires after 24 hours.

Schema and examples
string

Opaque keyset cursor from next_cursor. Reuse it with unchanged filters, sort, and direction; limit may change. Expires after 24 hours.

Maximum length
1000
Minimum length
1
limitoptionalintegerquery

Maximum resources to return, from 1 to 100. Defaults to 20.

Schema and examples
integer

Maximum resources to return, from 1 to 100. Defaults to 20.

Default
20
Examples
[20]
Maximum
100
Minimum
1

example-1: 20

Responses

A page of matching open jobs. The list may be empty.

application/json
Luranta-Cost-USDoptional

Credit consumed as a USD decimal string. Present only on successful billable responses.

string
Pattern
^(?:0|[1-9]\d*)\.\d{2,6}$
Luranta-Credit-Balance-USDoptional

Organisation credit remaining after settlement. Present only on successful billable responses.

string
Pattern
^(?:0|[1-9]\d*)\.\d{2,6}$
Luranta-Resources-Returnedoptional

Number of resources returned and charged. Present only on successful billable responses.

integer
Minimum
0
traceparentrequired

W3C trace context generated for this request attempt.

string
Pattern
^00-[0-9a-f]{32}-[0-9a-f]{16}-[0-9a-f]{2}$
X-Request-Idrequired

Unique UUIDv7 identifier for this request attempt.

string<uuid>
Format
uuid

Pagination

PropertyValue
Allows page size changetrue
Cursor ttl seconds86400
Has more pathhas_more
Items pathdata
Next cursor pathnext_cursor
Stylekeyset

Pricing

PropertyValue
Count pathdata
Meterjob_resource
Modelreturned_resource
Resourcejob