Seek has no public API. Here is the one we use

683 words ~3 min read Updated 2026-08-24

There is no official Seek API. Seek keeps the data in its markup, so accessing it in bulk means scraping the pages.

Here is what our Seek Actor returns, how much it costs, and where its limits are.

Calling it as an API

Start a run and wait for the dataset with one call:

curl -X POST "https://api.apify.com/v2/acts/blackfalcondata~seek-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
 -H 'Content-Type: application/json' \
 -d '{"query": "..."}'

The same call from Python:

from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("blackfalcondata~seek-scraper").call(run_input={"query": "..."})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
 print(item)

What comes back

Every row contains 73 fields, split across several groups:

This actual run record has been cut to its leading fields:

{
 "jobId": "1d099a5756d6c6d33a01db4f82abcb13b79ffc447b944b397648745647aab3a4",
 "seekJobId": "94016364",
 "title": "Software Developer",
 "canonicalUrl": "https://au.seek.com/job/94016364",
 "company": "Private Advertiser",
 "companyUrl": null,
 "advertiserId": "",
 "location": "Melbourne VIC",
 "locationCountry": "AU",
 "locationState": null,
 "locationSuburb": null,
 "locationPostcode": null,
 "salaryText": null,
 "salaryMin": null
}

What you give it

The input accepts 53 options, including query, country, location, startUrls, maxResults, maxPages, sortMode, dateRange, workType, workArrangement, and more. Filters run server-side, so you pay only for the records you requested instead of collecting extra records and filtering them afterwards.

Coverage includes Australia and New Zealand. The country option accepts AU or NZ and defaults to AU. Each run is limited to one market before it produces any records, so data outside that market is neither fetched nor billed.

What it costs

Pricing is per event, with no subscription:

Here are the results from a measured run, not an estimate:

Limits

Questions people ask

Is there an official Seek API? No. Seek publishes the data on its pages but provides no public API for it. Every option here therefore involves reading those pages.

How do I authenticate? Use an Apify API token, supplied through ?token= or an Authorization: Bearer header. It is your token, not ours, and the only credential required. You do not need a separate account on the source site.

How long does one call take? The measured run returned 25 records in 11.2 seconds. run-sync-get-dataset-items keeps the connection open for the entire run. For larger runs, start the run and poll the dataset instead.

Can I page through results? maxResults bounds the run rather than paging through responses. You request a number of records and receive one dataset. To read that dataset in chunks, use the dataset endpoint's offset and limit options.

What format does it return? The default format is JSON. By changing the format parameter, the same run's dataset endpoint also serves CSV, XLSX and JSONL. No separate export step is required.

Try it

the Seek API on Apify runs on Apify, and the endpoint above is the entire integration. New accounts receive $5 of free platform credit each month, enough to cover a real run of this size several times over.

Disclosure: we build and maintain this Actor, and the link above is an affiliate link.

Further reading

Also published on