jobs.ch / jobup.ch job search

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

Swiss jobs on jobs.ch (or jobup.ch with site=jobup) with every filter of the site's search: location, region, category, industry, employment type, position, workload range, company size segment, language, company and sort. Each job: id, title, url, company, company_id, company_slug, logo, place, coordinates, preview, publication dates, workload, employment type and position ids, language skills, category and region paths, plus raw. facets gives the ids with counts. Pass next_page back as page; null on the last page.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
q string Keywords. Required unless location or a filter is given. Example: python
location string Town or postcode. Example: Zürich
region string Region ids from facets.region, comma separated.
category string Category ids from facets.category, comma separated.
industry string Industry ids from facets.industry, comma separated.
employment_type string Employment type ids from facets.employment_type, comma separated.
position string Position ids from facets.position, comma separated.
company_segment string Company size segments from facets.company_segment (e.g. kmu, gu), comma separated.
language string Required language codes from facets.language, comma separated.
company_id string Company ids (from results or /jobs-ch/v1/company), comma separated.
workload_min integer Minimum workload in percent (0-100).
workload_max integer Maximum workload in percent (0-100).
sort relevance | date Order.
site jobs | jobup jobs (default) or jobup.
limit integer Jobs per page, 1-20 (default 20).
page integer Page number. Pass next_page from the previous response; null on the last page.

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

Example

curl "https://api.api.sh/jobs-ch/v1/search?q=python" \
  -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.