List Jobs
Fetch a list of jobs with filtering and search. Lists are paginated with opaque cursors: the response includes pagination.limit, pagination.next_page, and pagination.prev_page. There is no page query parameter.
sort_by as before, and pass the token from the last response as cursor, or pass the same string using the next_page or prev_page query parameter.published_after (ISO 8601), the API does not apply max_age for the same request. Use published_after for a strict calendar lower bound; use max_age for a rolling window (e.g. 7d).Full copy-paste types (including the FilterApplied union) live on the API types (TypeScript).
Allowed tokens for fields, exclude_fields, and extra_fields: id, title, location, locations, application_url, published, has_remote, is_active, expired_at, language, employment_type, salary_min, salary_max, salary_currency, salary_text, experience_level, experience_levels, company, description
Query Parameters
Search & Keywords
titlestringsoftware engineersearchstringsoftware engineersort_bystringrelevanceGeographic Filtering
Pro Tip: Use the Geo Suggest API to find IDs for 100% accuracy.
city_idnumber5391959state_idnumber5332921country_idnumber233locationstringUS,CAremotebooleantrueField selection (list only)
Default list responses return a summary set of columns (no full description). Use the parameters below to trim or extend the payload. Unknown field names are ignored.
fieldsstringid,title,company,publishedinclude_fieldsstringid,title,companyextra_fieldsstringdescriptionexclude_fieldsstringdescription,companyCompensation & Seniority
salarystring100000,150000 OR 100000(min)experience_levelstringSE,EXFreshness & Pagination
published_afterstring2024-05-01T00:00:00.000Zmax_agestring24h, 7d, 1w, or 7limitnumber50cursorstring(value from prior response)next_pagestring(value from prior response)prev_pagestring(value from prior response)Response Schema
The body includes data (jobs), pagination (see below), and meta.
The Envelope
dataarraypaginationobjectmetaobjecttitle,experience_level:key,value,display_label.salary:key,min,max,display_label.published_after,max_age:key,value,display_label(value is hours since cutoff for max_age).city_id/state_id/country_id:key,kind,name,display_label, plus the matching*_idfield.location(ISO2 codes from the location query param):key,value,display_label(code).- Remote-only filter (from
remote=true): rowkeyisremote_only;valueis alwaystrue.
The Company Object
NestedVerified metadata about the hiring organization, stored on the job object. Not every key is present for every listing—treat optional fields as nullable/missing.
company.namestringcompany.logostring | nullNullablecompany.website_urlstring | nullNullablecompany.descriptionstring | nullNullablecompany.industrystring | nullNullablecompany.employee_countstring | nullNullablecompany.linkedin_urlstring | nullNullablecompany.twitter_urlstring | nullNullablecompany.github_urlstring | nullNullablecompany.facebook_urlstring | nullNullablecompany.instagram_urlstring | nullNullablecompany.youtube_urlstring | nullNullablecompany.teamarrayname: Full name of the team member.title: Job title or role (nullable).linkedin_url: Link to their professional profile (nullable).photo_url: URL to their profile photo (nullable).
The Location Object
Array ItemEach item in the locations[] array is a fully resolved geographic entity.
locations[].kindstring | nullNullablecity_state_country: Fully resolved.city_country: City and country resolved.city_state: City and state resolved.city,state, orcountry: Single level resolved.
locations[].display_labelstring | nullNullablelocations[].city_namestring | nullNullablelocations[].city_idnumber | nullNullablelocations[].state_namestring | nullNullablelocations[].state_idnumber | nullNullablelocations[].state_codestring | nullNullablelocations[].country_namestring | nullNullablelocations[].country_idnumber | nullNullablelocations[].country_codestring | nullNullablelocations[].timezonestring | nullNullablelocations[].is_remotebooleanlocations[].is_primaryboolean