+Personio API
Pull every open job from any company's Personio career page as clean JSON, with filters, facets and full descriptions.
Personio is a German HR platform, and companies that use it can publish their vacancies on a Personio career page (company.jobs.personio.de). The API.SH Personio API reads those public job boards. List every open position with title, department, offices, legal entity, employment type, seniority, schedule, years of experience, keywords and salary range when published, filter by department, office or seniority, and open one job for its full description and apply link, in English, German and other languages.
- 2 endpoints
- from $1 / 1,000 calls
- 1,000 free credits / month
- failed calls free
GET https://api.api.sh/personio/v1/ job
{ "success": true } What you can build with the Personio API
Job market and hiring signals
Track how many roles a company has open by department and office over time with the board's facets and total count, a signal of growth or hiring freezes.
Job aggregation
Feed the open roles of many Personio companies into your own job board or newsletter, with descriptions and apply links.
Salary research
Collect the salary ranges companies publish on their Personio postings and compare them by seniority, office and department.
Recruiting and sales leads
Find companies hiring for a role or in a city, then use department and office data to target outreach.
Personio data you get
Field names from real responses. Numbers come parsed, URLs absolute, dates in ISO 8601.
Personio API endpoints and prices
Every Personio endpoint costs 1 credit per call: credits are $1 per 1,000 on a monthly plan, $2 pay-as-you-go. Pricing
| Personio job /personio/ | $1 · $2 PAYG 1 credit |
| Personio company jobs /personio/ | $1 · $2 PAYG 1 credit |
Call the Personio API
Personio job: GET https://api.api.sh/personio/
curl "https://api.api.sh/personio/v1/job?company=1komma5grad" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/personio/v1/job",
params={"company": "1komma5grad"},
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/personio/v1/job");
url.searchParams.set("company", "1komma5grad");
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(); # Google Sheets (API.SH add-on)
=APISH("/personio/v1/job", "company", "1komma5grad")
# Zapier, Make, n8n (verified node): pick the API.SH app,
# choose "Personio" and "Personio job".
# AI agents (Claude, ChatGPT, Cursor): add the
# API.SH MCP server https://api.sh/mcp - Create a free accountConfirm your email and get 1,000 free credits every month. No card needed.
- Create an API keyOne key works for all 482 platforms.
- Send the requestJSON back in one call. Add
output=csvoroutput=ndjsonfor files.
Why API.SH for Personio data
- Public data only: no Personio login, cookies or account needed
- One key and one response shape for Personio and 481 other platforms
- Built and maintained by API.SH, not third-party publishers
- Pay per call; errors on our side cost nothing
- Live status for every endpoint
API.SH vs the official Personio API
Personio has an official API, but it is for a company's own HR data: customers create API credentials to read and sync employee, attendance and absence data. It is not for reading other companies' job boards. API.SH reads the public Personio career pages of any company, with no credentials.
Instead of maintaining your own Personio job scraper or comparing Apify actors, use one API.SH key and get the same job JSON shape across job boards.
Personio API questions
What Personio data can I get?+
All open positions on a company's Personio career page with filters, facets, salary range when published and optional description sections (/personio/v1/jobs), and one job with its full description and apply link (/personio/v1/job).
How much does the Personio API cost?+
Every Personio endpoint costs 1 credit per call. On a monthly plan 1,000 credits cost $1 (Starter is $50/month for 50,000 credits). Pay-as-you-go is $2 per 1,000 credits, with top-ups from $15 that never expire.
Is there a free trial?+
Yes. Every account gets 1,000 free credits every month. That is 1,000 calls to /personio/v1/job at 1 credit each.
Is there an official Personio API?+
Yes, for Personio customers. It reads and syncs your own company's employee, attendance and absence data with API credentials. To read public job openings of any company, use API.SH.
Do I need a Personio account or API key?+
No. You only need the company name used in its career page address (for example 1komma5grad from 1komma5grad.jobs.personio.de). No endpoint uses a login or anyone's account.
Can I get employee or time off data?+
No. API.SH returns public job postings only. Employee records, absences and time off are private HR data and only available to the company through Personio's own API.
Can I use it from Python?+
Yes. It is a plain HTTPS API that returns JSON, so any HTTP client works, or use the API.SH Python SDK. The docs have request examples.
How do I get started?+
1. Sign up at api.sh. 2. Copy your API key. 3. Call /personio/v1/jobs with a company name such as company=1komma5grad. Every parameter and request examples are in the docs at https://api.sh/docs. You can also use the JS or Python SDK, Google Sheets, Zapier, Make, n8n or the MCP server at https://api.sh/mcp.