Job ads on karriere.at (Austria) for keywords and a place, with every filter the site offers: job field, employment type, job level, monthly salary band, home office and radius. Each result has the title, employer with size and logo, locations, employment types, salary text, home office, summary and posting age. facets lists every filter value with its label and count. 15 per page; pass next_page back as page.
Every response includes credits_used: the credits this call cost.
Parameters
name
type
description
q
string
Keywords (title, skill or company). Example: python
location
string
Place (e.g. wien, graz, linz, salzburg). Example: wien
radius
0 | 10 | 20 | 30 | 50 | 75 | 100
Distance around location in km.
field
string
Job field ids, comma separated (facets.fields; e.g. 2172 IT).
employment_type
string
Employment type ids, comma separated (3960 full time, 3961 part time, 3963 internship, 3965 apprenticeship, 3962 freelance, 3966 marginal, 3964 thesis).
level
string
Job level ids, comma separated (3954 entry, 3955 experienced, 3956 project or department lead, 3958 management, 11972 self-employed).
salary
string
Monthly gross salary band id (facets.salary; e.g. 10008 = from EUR 4,000).
import os, requests
res = requests.get(
"https://api.api.sh/karriere-at/v1/search",
params={"q": "python"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json()
const url = new URL("https://api.api.sh/karriere-at/v1/search");
url.searchParams.set("q", "python");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json();
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.