Skip to main content
POST
This endpoint requires special access. Please contact us to enable historical data on your API key.
Search up to 6 years of historical jobs across all companies without providing company identity inputs. Filter by location, department, industry, keywords, job type, seniority level, job board, salary availability, and more.

Authentication

This endpoint requires a Bearer token. Enter your API key in the authorization field above — the Bearer prefix is added automatically.

Request Body

Location Filters

array
Filter jobs by location. Each item supports country, state, and city.
array
Exclude jobs from specific locations. Uses the same location object shape as jobs_locations.
boolean
Filter by remote status. true returns only remote jobs, false returns only non-remote jobs, and null includes both.
boolean
Filter for jobs that include country information.

Date Filters

string
Start date for the search in YYYY-MM-DD format. If omitted, the API defaults this to 2 months before the request date. This value cannot be older than 6 years before the request date.
string
End date for the search in YYYY-MM-DD format. If omitted, the API defaults this to the day after the request date.

Job Filters

array
Filter by department.
array
Filter by industry. Values are case-insensitive.
array
Filter by job type.
array
Filter by seniority level.
boolean
Set true to return only jobs that include salary data. false, omitted or null: no salary filter — all jobs are returned.
boolean
Recruiting-agency filter. false: exclude jobs posted by known recruiting agencies — jobs from unclassified employers are kept. true: return only agency-posted jobs. Omitted or null: no filter.

Keyword Filters

object
Keywords to search for in job titles and descriptions.
object
Keywords to exclude from job titles and descriptions.
array
Bracketed keyword logic, for queries job_keywords cannot express: requiring two separate words in the same job title, or matching several role profiles in one call.Each item is a group. A group combines its title block, its description block and any nested groups using its own mode. Every group in the top-level array must match, so the array itself behaves as an AND.Require both words in the title, and either technology in the description:
Match either of two role profiles in a single call:
array
The same structure, applied as an exclusion. Jobs matching a group are removed from the results.
A group describes a set of jobs to remove, so its mode applies before the removal. With "mode": "and" the group removes only jobs matching every condition in it: {"mode": "and", "title": {"mode": "and", "terms": ["Intern", "Junior"]}} removes titles containing both words and keeps “Junior Engineer”. To drop jobs matching any of the terms, use "mode": "or" as in the example above.

Job Board Filters

boolean
Filter by job board sources. true includes only jobs sourced from job boards, false excludes them, and null includes both job boards and direct company career pages.
array
Only include results from specific job boards. Values are case-insensitive.
array
Exclude results from specific job boards. Uses the same accepted values shown in include_job_boards.

Other Options

boolean
default:"true"
Remove duplicate job listings from results.
integer
default:"100"
Maximum number of results to return. Min: 10, Max: 100.
array
Pagination cursor from a previous response. Pass the array exactly as returned, in the form [timestamp, cursor_id].

Response

boolean
required
true if the search completed successfully.
object
The response payload. null when the request fails.
string
Error message when applicable. null for successful responses with results.
All job object fields may be null if the source posting did not contain that information.

Pagination

This API uses search_after pagination.
1

Make the first request

Omit search_after or set it to null.
2

Read the cursor

If the response includes a non-null search_after array, more results are available.
3

Fetch the next page

Pass the returned search_after array into the next request unchanged.
4

Stop when complete

When search_after is null, you have reached the end of the result set.

Rate Limits

This endpoint is rate-limited to 100 requests per minute per API key.

Constraints

  • published_after defaults to 2 months before the request date when omitted.
  • published_after cannot be older than 6 years before the request date.
  • published_before defaults to the day after the request date when omitted.
  • published_after must be earlier than published_before.
  • Credits are charged only for new jobs within the current billing cycle.