Quickstart

The Jobs API serves active job postings in Canada and the United States, collected from employers' career sites and applicant tracking systems. Every response is JSON over HTTPS. New here? Read how the API works.

1. Get an API key

Create an account; your organization starts a free 7-day trial with 500 jobs and 50 requests. Then create a key on the API keys page. Keys look like tja_live_… and are shown once.

2. Make a request

Search active Canadian jobs with keywords and a province (add country=US and state= for the United States):

bash
export THEJOBSAPI_KEY="tja_live_..."

curl "https://api.thejobsapi.com/v1/jobs?q=registered%20nurse&province=ON&limit=10" \
  -H "Authorization: Bearer $THEJOBSAPI_KEY"
JavaScript
const response = await fetch("https://api.thejobsapi.com/v1/jobs?q=registered%20nurse&province=ON&limit=10", {
  headers: { Authorization: `Bearer ${process.env.THEJOBSAPI_KEY}` },
});
if (!response.ok) throw new Error((await response.json()).error);
const { jobs, next_cursor } = await response.json();
Python
import os, requests

response = requests.get(
    "https://api.thejobsapi.com/v1/jobs",
    params={"q": "registered nurse", "province": "ON", "limit": 10},
    headers={"Authorization": f"Bearer {os.environ['THEJOBSAPI_KEY']}"},
    timeout=30,
)
response.raise_for_status()
jobs = response.json()["jobs"]

3. Page through results

Each page returns next_cursor. Pass it back as cursor to get the next page; it is null on the last page. See Search jobs.

4. Keep your copy in sync

To mirror jobs into your own database, poll the feeds: new jobs every hour, expired jobs to delete and modified jobs once a day. They take Google-style search and full-name locations across both countries (your first feed call, recommended strategy). Or read the changes feed from since=0, store next_since and poll again later: it reports new, updated, expired and excluded jobs in order, seconds behind collection.

What you get

  • Job title, employer, original posting and apply URLs, the source system and board.
  • Every location with province or state, city and coordinates when known; remote and work arrangement.
  • Employment types and salary, only when the employer stated them. Missing facts stay null.
  • Descriptions as text, HTML or both, and employer-provided extra fields with their source path.

Try any endpoint without writing code in the playground.