XING job search
Jobs on XING (Germany, Austria, Switzerland) for keywords and/or location, with radius, employment type, career level, remote, minimum salary, industry, discipline and company filters: id, title, link, company, company id and logo, location(s), employment type, salary (XING's estimate when the ad has none: currency, min, max, median), refresh and expiry dates, top-job flag, a short summary (introduction, responsibilities, qualifications) and the apply link. 20 per page. Pass next_page back as page; null on the last page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
q | string | Keywords, e.g. engineer. Example: engineer |
location | string | City, e.g. Berlin. Example: Berlin |
radius | 10 | 20 | 50 | 100 | 200 | Kilometres around the location: 10, 20, 50, 100, 200. |
employment_type | string | full_time, part_time, contractor, intern (comma-separated). |
career_level | student | entry | professional | manager | executive | senior_executive | Career level. |
remote | full | partly | none | Fully remote, partly remote or on-site jobs (fully remote jobs are not limited to location). |
salary_min | integer | Lowest yearly salary in euros. |
industry | string | Industry id, e.g. 41200.039daf (industry_id of a job). |
discipline | string | Discipline id, e.g. 1010.b48650 (discipline_id of a job). |
company | string | Company id, e.g. 2019285.00e581 (company_id of a job). |
page | integer | Page number (1-50). Pass next_page from the previous response. |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/xing/v1/search?q=engineer" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/xing/v1/search",
params={"q": "engineer"},
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/xing/v1/search");
url.searchParams.set("q", "engineer");
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).