Jobs — entry 004 of 18

Arbeitsamt

Verified Jul 2026

The Bundesagentur für Arbeit's Jobsuche API is Germany's official public job-search service, covering listings, employer details, and application document references. Every request needs the fixed public clientId sent as an X-API-Key header rather than a per-user OAuth token, and returns JSON.

The Bundesagentur fur Arbeit's Jobsuche API is Germany's official public job-search service. Its live OpenAPI spec (jobsuche.api.bund.dev/openapi.yaml, enumerated this run) documents a two-step flow: search via /pc/v6/jobs (or /pc/v4/app/jobs) to get a job's refnr, then fetch the full record via /pc/v4/jobdetails/{base64(refnr)}.

germanygovernmentjob-searchpublic-sector
AuthenticationAPI KeySign up with the provider to obtain credentials.
HTTPSSupportedTraffic is encrypted in transit.
CORSDisabledBrowser calls need a server-side proxy.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score84out of 100
Authentication15/25API key required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 84 on greatapis.com
<a href="https://greatapis.com/api/arbeitsamt/"><img src="https://greatapis.com/badge/arbeitsamt.svg" alt="Scored 84 on greatapis.com"></a>

Auth quickstart

  1. Every request needs the fixed public clientId sent as an X-API-Key: jobboerse-jobsuche header — confirmed live this run: the same search query returns 403 with a 1-byte body without the header and a real 200 with job data once it's supplied. This value is a documented public constant in the project's own OpenAPI spec, not a secret.
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://rest.arbeitsagentur.de/jobboerse/jobsuche-service
Auth
APIKeyHeaders
ct1
GET/ct/v1/arbeitgeberlogo/{kundennummerHash}Unternehmen Logo
Parameters
NameInRequiredType
kundennummerHashpathyesstring
Responses
StatusDescriptionSchema
200OK
404Kein Logo für diesen Arbeitgeber vorhanden.
pc4
GET/pc/v3/jobdetails/{encryptedJobCode}Jobdetails (v3)
Parameters
NameInRequiredType
encryptedJobCodepathyesstring
Responses
StatusDescriptionSchema
200OKJobDetails
GET/pc/v4/app/jobsJobsuche via App
Parameters
NameInRequiredType
wasquerynostring
woquerynostring
berufsfeldquerynostring
pagequerynointeger
sizequerynointeger
arbeitgeberquerynostring
veroeffentlichtseitquerynointeger
zeitarbeitquerynoboolean
angebotsartquerynointeger
befristungquerynointeger
arbeitszeitquerynostring
behinderungquerynoboolean
coronaquerynoboolean
umkreisquerynointeger
Responses
StatusDescriptionSchema
200OKJobSearchResponse
GET/pc/v4/jobdetails/{encryptedJobCode}Jobdetails (v4)
Parameters
NameInRequiredType
encryptedJobCodepathyesstring
Responses
StatusDescriptionSchema
200OKJobDetails
GET/pc/v6/jobsJobsuche
Parameters
NameInRequiredType
wasquerynostring
woquerynostring
berufsfeldquerynostring
pagequerynointeger
sizequerynointeger
arbeitgeberquerynostring
veroeffentlichtseitquerynointeger
zeitarbeitquerynoboolean
angebotsartquerynointeger
befristungquerynointeger
arbeitszeitquerynostring
behinderungquerynoboolean
coronaquerynoboolean
umkreisquerynointeger
Responses
StatusDescriptionSchema
200OKJobSearchResponse

Try it

Developer reference

Base URLhttps://rest.arbeitsagentur.de/jobboerse/jobsuche-service
Key endpoints
  • GET/pc/v6/jobs
  • GET/pc/v4/jobdetails/{encryptedJobCode}

Gotchas & limits

  • The job-detail path takes the refnr base64-encoded, not raw: confirmed live, GET .../pc/v4/jobdetails/10000-1207221816-S (unencoded) 404s with a real JSON body {"messages":[{"code":"STELLENANGEBOT_NICHT_GEFUNDEN"}], ...}, while the base64 form of the identical refnr succeeds.
  • The spec's own documented flow uses /pc/v6/jobs for search (richer, deeply-nested field names like ergebnisliste/referenznummer/stellenlokationen) and /pc/v4/jobdetails for the detail lookup — but the older, undocumented /pc/v4/jobs search endpoint (simpler flat names: stellenangebote/refnr) still returns real 200 results too, confirmed live this run; the two search shapes are not interchangeable field-for-field.
  • An older /pc/v2/jobdetails/{base64(refnr)} path (referenced in older third-party write-ups) now returns a bare 403 with a 1-byte body even with a valid key and correctly base64-encoded refnr — it's gone, not merely deprecated-but-working. /pc/v3/jobdetails and /pc/v4/jobdetails both still work for the same refnr and return byte-identical bodies (confirmed live this run); the spec calls v4 the "recommended version."
  • CORS is closed: confirmed live with no access-control-allow-origin header on the search endpoint, neither bare nor with an Origin header, and an OPTIONS preflight (Access-Control-Request-Method: GET) succeeds with Allow: GET, HEAD, OPTIONS but still no CORS header — a preflight-shaped 200 that a browser would still block.
  • No rate limit is documented anywhere in the live spec (jobsuche.api.bund.dev/openapi.yaml has zero mentions of "limit"/"throttle"/"quota") and none was observed in response headers this run — unlike ai-dev-jobs or The Muse, there is nothing to report here.

Changelog

Spec version2.1.0
Tracked paths5
  • Aug 2026gained an OpenAPI spec

Tracking since Sep 2026. See every tracked change ↗ ·Subscribe with RSS ↗