Search Job Bank Canada jobs

GET https://api.api.sh/jobbank/v1/search
1 credit / call jobs & b2b try it in the playground →

Job postings on Job Bank (the Government of Canada job board) for keywords, with every filter the site offers: province, posting age, full or part time, employment term, language, annual or hourly salary band, source (posted on Job Bank or by governments) and occupation (NOC), sorted by relevance or date. Each result has the title, employer, location, salary with min, max and period, source, job number, work location and apply method. facets gives every filter value with counts. 25 per page; pass next_page back as page.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
q string Keywords (title, skill or employer). Example: cook
province string Province codes, comma separated (AB, BC, MB, NB, NL, NT, NS, NU, ON, PE, QC, SK, YT). Example: ON
posted 2 | 30 Posting age.
job_type string F full time, P part time; comma separated.
term string P permanent, T term or contract, S seasonal, C casual; comma separated.
language string E English, F French, B both; comma separated.
salary_annual string Annual salary bands A-E, comma separated (A $100k+, B 80-100k, C 60-80k, D 40-60k, E 20-40k).
salary_hourly string Hourly salary bands A-E, comma separated (A $50+, B 40-50, C 30-40, D 20-30, E under 20).
source string 16 posted on Job Bank, 3 federal government, 4 provincial governments, 5 municipal governments; comma separated.
occupation string 5-digit NOC occupation codes, comma separated (facets.occupation).
sort relevance | date Order.
page integer Page number (from 1).

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/jobbank/v1/search?q=cook" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.