Arbeitsagentur Jobs API | 1M+ German Jobs — Official API
Pricing
$1.50 / 1,000 jobs
Arbeitsagentur Jobs API | 1M+ German Jobs — Official API
Search Germany's Bundesagentur für Arbeit job board (1M+ listings) by keyword, city and radius. Full descriptions, salary, employer, address and GPS, contract filters, and only-new monitoring. Official public API—no browser. $1.50 per 1,000 jobs.
Pricing
$1.50 / 1,000 jobs
Rating
0.0
(0)
Developer
Runix Services
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Arbeitsagentur Jobs API: 1M+ German Jobs from the Official API
Search Germany's largest job board, the Jobsuche of the Bundesagentur für Arbeit (Federal Employment Agency, arbeitsagentur.de), with over 1 million open jobs, and get clean, structured rows: title, company, full address with GPS, salary range, working time, contract type, start date, the full job description and the employer's website.
It reads the job board's official REST API, the same one the Arbeitsagentur's own apps use. No browser, no captcha, no proxies, no login. Runs are fast: 100 jobs with descriptions in about 30 seconds, 500 in under a minute.
$1.50 per 1,000 jobs. You pay only for the jobs you get.
What you can do with it
- Recruiting and staffing: find every open nurse, electrician, driver or engineer role in a city and radius, with the hiring company and its website.
- B2B lead generation: companies that are hiring are companies that are growing. Pull employers by occupation and region, with address and website.
- Job boards and aggregators: fill a German job board with fresh, deduplicated jobs every day using only-new mode.
- Labour-market research: salaries, working time, contract types and demand by occupation and region.
Input
| Field | What it does |
|---|---|
Job titles or keywords (keywords) | What to search, in German or English: Data Engineer, Pflegefachkraft, Elektriker. Each is its own search. Empty = every job. |
Locations (locations) | German cities, postcodes or states: Berlin, 80331, Bayern. Empty = all of Germany. |
Include jobs abroad (includeAbroad) | With no location, also return the jobs abroad the board lists from partner services (mostly Austria). Off by default. |
Radius (radiusKm) | Kilometres around each location, e.g. 10, 25, 50, 100. |
Max jobs (maxJobs) | Stop after this many jobs in total. |
Offer type (offerType) | Jobs (default), apprenticeships (Ausbildung, duales Studium), internships and trainee posts, self-employment, or any. |
Posted within (days) (postedWithinDays) | 0 = today, 1, 7, 14, 28 ... up to 100. |
Working time (workingTime) | Full-time, part-time, shift/night/weekend, mini-job. |
Contract (contract) | Permanent (unbefristet) or fixed-term (befristet). |
Employer (employer) | Only one employer's jobs, e.g. Deutsche Bahn AG. |
| Only jobs with a salary | Keep only jobs that state pay. |
| Exclude temporary-work agencies / private recruiters / partner-board copies | Cleaner lists of direct employers. |
Include full description (includeDescription) | On by default. Adds the description, employer website and agency flags. |
Only new jobs (onlyNewJobs) | Return only jobs not returned by earlier runs of the same search. Schedule it daily. |
Every keyword is searched in every location, and jobs found by more than one search are returned once.
Example: data engineers in Berlin (the prefill)
{"keywords": ["Data Engineer"],"locations": ["Berlin"],"radiusKm": 25,"maxJobs": 100}
Example: daily monitor of new nursing and electrician jobs, direct employers only
{"keywords": ["Pflegefachkraft", "Elektriker"],"locations": ["Hamburg", "München"],"radiusKm": 25,"postedWithinDays": 7,"contract": "permanent","excludeTemporaryAgencies": true,"onlyNewJobs": true}
Output
One row per job. Example (description shortened):
{"title": "Senior Applied AI Engineer","company": "DKB Service GmbH","city": "Berlin","postalCode": "10557","region": "Berlin","country": "Germany","street": null,"latitude": 52.5239066,"longitude": 13.3578666,"distanceKm": 5,"offerType": "job","occupation": "KI-Engineer","workingTime": ["full-time"],"contract": "permanent","homeOffice": true,"homeOfficeType": "by arrangement","salaryMin": 82000,"salaryMax": 100000,"salaryCurrency": "EUR","salaryPeriod": "year","salaryText": "€82,000–100,000 per year","startDate": "2026-11-01","publishedAt": "2026-10-08","employerWebsite": "https://www.dkb.de","sourceName": "DKB Service GmbH","sourceWebsite": "https://www.dkb.de","temporaryAgency": false,"privateAgency": false,"description": "Wir finanzieren, was Menschen im Alltag brauchen - zum Beispiel erneuerbare Energien, bezahlbaren ...","url": "https://www.arbeitsagentur.de/jobsuche/jobdetail/14412-44489256-107-S","applyUrl": "https://www.arbeitsagentur.de/jobsuche/jobdetail/14412-44489256-107-S","referenceNumber": "14412-44489256-107-S","searchKeyword": "Data Engineer","searchLocation": "Berlin","fetchedAt": "2026-11-05T07:38:56.523Z"}
Also in each row: all locations of multi-site jobs (locations), all matching occupations, first publication and last change dates, whether the job suits career changers (suitableForCareerChangers) and a stable employerId. sourceName and sourceWebsite say who delivered the posting to the job board (the employer itself, a recruiter or a partner job board); employerWebsite is filled when that source is the employer. For jobs imported from partner job boards, applyUrl is the original posting.
A SUMMARY record in the run's key-value store lists every search with how many jobs were available, read and returned.
Pricing
Pay per event: $1.50 per 1,000 jobs ($0.0015 per job). Nothing else is charged. The Actor stops at your Max jobs or your run's spending limit, whichever comes first, so a run never costs more than you allow.
Limits and tips
- The API serves the first 10,000 jobs of each search. For bigger pulls, split by location (for example the 16 states, or a list of cities) or add filters; the Actor deduplicates across searches.
- Salary is given on roughly 15–30% of postings, depending on the occupation. Use Only jobs with a salary to keep those.
- Turn off Include full description for the fastest runs (one API call per 100 jobs instead of one per job).
- Keywords match the job board's own search, which understands German occupations and their synonyms.
Is this allowed?
The data is public: the Bundesagentur für Arbeit publishes these job offers so that anyone can find them, and the Actor reads them through the job board's documented public API at a polite pace. It collects job postings, not personal data about applicants. Contact persons hidden behind the job board's captcha are not collected. If you republish jobs, follow the Arbeitsagentur's terms for its data.
FAQ
Do I need an API key or an account at the Arbeitsagentur? No.
Can I search in English? Yes, but most German postings use German titles, so German keywords (Softwareentwickler, Krankenpfleger, Vertrieb) usually find more.
How fresh is it? Live: every run reads the job board at that moment.
Does it work for apprenticeships (Ausbildungsplätze)? Yes, set Offer type to Apprenticeships.
Questions or a field you need? Open an issue on the Actor's Issues tab.