Your first feed call
Fetch software and data jobs in Toronto and Vancouver collected in the last 24 hours. You need an API key from the API keys page.
The request
bash
curl --get "https://api.thejobsapi.com/v1/active-ats" \
-H "Authorization: Bearer $THEJOBSAPI_KEY" \
--data-urlencode 'time_frame=24h' \
--data-urlencode 'title="software engineer" OR "data scientist"' \
--data-urlencode 'location="Toronto, Ontario, Canada" OR "Vancouver, British Columbia, Canada"' \
--data-urlencode 'limit=20'time_frame=24h: jobs first collected in the 24 hours up to the last full UTC hour.title: quotes make a phrase;ORaccepts either.location: full place names, each quoted, joined withOR.limit: up to 1000 per page; page further withoffset.
Writing locations
Use full names in the orderCity, Region, Country: Ontario, Canada, Texas, United States. Region codes work after a city (Toronto, ON), but a bare CA or US is not a country: write Canada or United States. More on location search.In code
JavaScript
const params = new URLSearchParams({
time_frame: "24h",
title: '"software engineer" OR "data scientist"',
location: '"Toronto, Ontario, Canada" OR "Vancouver, British Columbia, Canada"',
limit: "20",
});
const response = await fetch(`https://api.thejobsapi.com/v1/active-ats?${params}`, {
headers: { Authorization: `Bearer ${process.env.THEJOBSAPI_KEY}` },
});
if (!response.ok) throw new Error((await response.json()).detail);
const jobs = await response.json();
console.log(jobs.map(job => `${job.title} · ${job.organization} · ${job.locations_derived?.join("; ")}`));Python
import os, requests
response = requests.get(
"https://api.thejobsapi.com/v1/active-ats",
params={
"time_frame": "24h",
"title": '"software engineer" OR "data scientist"',
"location": '"Toronto, Ontario, Canada" OR "Vancouver, British Columbia, Canada"',
"limit": 20,
},
headers={"Authorization": f"Bearer {os.environ['THEJOBSAPI_KEY']}"},
timeout=60,
)
response.raise_for_status()
for job in response.json():
print(job["title"], "·", job["organization"], "·", job["locations_derived"])Next steps
- Add
description_format=textorhtmlto include descriptions. - Filter by employer with
organization, by source system withsource, or to jobs with published pay withhas_salary=true. - Try the request in the playground, then set up a sync with the recommended strategy.