/berufssprachkurssuche-api

API zur Berufssprachkurssuche der Bundesagentur für Arbeit

Primary LanguagePython

Arbeitsagentur Berufssprachkurssuche API

Die Bundesagentur für Arbeit verfügt über eine der größten Datenbanken für Berufssprachkurse. Obwohl sie vollständig staatlich ist und es sich dabei um einen sehr spannenden Basisdatensatz handelt, mit dem viele Analysen möglich wären, bietet die Bundesagentur für Arbeit dafür bis heute keine offizielle API an.

Authentifizierung

Die Authentifizierung funktioniert per OAuth 2 Client Credentials mit JWTs. Client Credentials sind, wie sich z.B. einem GET-request an https://web.arbeitsagentur.de/sprachfoerderung/suche/berufssprachkurse entnehmen lässt (oder an https://web.arbeitsagentur.de/sprachfoerderung/suche/integrationskurse, an https://web.arbeitsagentur.de/sprachfoerderung/suche/anerkennungen, oder an https://web.arbeitsagentur.de/sprachfoerderung/suche/sonstige-kurse), folgende:

client_id: bd24f42e-ad0b-4005-b834-23bb6800dc6c

client_secret: 6776b89e-5728-4643-8cd5-c93aefb5314b

grant_type: client_credentials

Die Credentials sind im body eines POST-request an https://rest.arbeitsagentur.de/oauth/gettoken_cc zu senden.

token=$(curl \
-d "client_id=bd24f42e-ad0b-4005-b834-23bb6800dc6c&client_secret=6776b89e-5728-4643-8cd5-c93aefb5314b&grant_type=client_credentials" \
-X POST 'https://rest.arbeitsagentur.de/oauth/gettoken_cc' |grep -Eo '[^"]{500,}'|head -n 1)

Der generierte Token sollte bei folgenden GET-requests an https://rest.arbeitsagentur.de/infosysbub/sprachfoerderung/pc/v1/bildungsangebot im header als 'OAuthAccessToken' inkludiert werden.

Hinweis: Alternativ kann man bei folgenden GET-requests auch direkt die client_id als Header-Parameter 'X-API-Key' übergeben - 'OAuthAccessToken' ist in diesem Fall nicht erforderlich. 🚀

Berufssprachkurssuche

URL: https://rest.arbeitsagentur.de/infosysbub/sprachfoerderung/pc/v1/bildungsangebot

Die Berufssprachkurssuche ermöglicht verfügbare Berufssprachkursangebote und andere Kursarten (z..B. Bildungsangebote Migration oder Angebote in Zusammenhang mit der Anerkennung ausländischer Berufsabschlüsse) mit verschiedenen GET-Parametern zu filtern:

Filter

Parameter: systematiken (Optional)

  • MC
  • MB
  • A8
  • MQ

Kursart: MC=Berufssprachkurse; MB=Integrationskurse; A8 = Bildungsangebote Migration; MQ = Anerkennung ausländischer Berufsabschlüsse.

Parameter: suchworte (Optional)

Suchworte (z.B. Deutschsprachf%25C3%25B6rderung,Berufsbezogener%2520Englischkurs). Mehrere Komma-getrennte Angaben möglich.

Parameter: orte (Optional)

Ortsangabe nebst Postleitzahl und Koordinaten (longitude und latitude) jeweils durch Unterstriche getrennt (z.B. Feucht_90537_11.224918_49.376701,N%C3%BCrnberg;%20Mittelfranken_11.0753_49.4508). Mehrere Komma-getrennte Angaben möglich.

Parameter: systematiken (Optional)

Systematiken (z.B. MC)

Parameter: page (Optional)

Seite (beginnend mit 0 für die erste Seite).

Parameter: sort (Optional)

Sortierungskriterium (z.B. basc)

Parameter: umkreis (Optional)

  • Bundesweit
  • 25
  • 50
  • 100
  • 150
  • 200

Parameter: sprachniveau (Optional)

  • MC%2001%201
  • MC%2001%202
  • MC%2001%203
  • MC%2001%204
  • MC%2001%205
  • MC%2002
  • MC%2003

Sprachzielniveau: MC%2001%201=A2, MC%2001%202=B1, MC%2001%203=B2, MC%2001%204=C1, MC%2001%205=C2, MC%2002=Spezialberufskurs, MC%2003=Berufsanerkennung. Mehrere Komma-getrennte Angaben möglich.

Parameter: beginntermine (Optional)

  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Beginntermin: 0=regelmäßiger Start, 1=diesen Monat, 2=nächster Monat, 3=übernächster Monat, 4=überübernächster Monat, 5=spätere Termine, 6=frühere Termine. Mehrere Komma-getrennte Angaben möglich.

Parameter: unterrichtsformen (Optional)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 0

Lernform: 1=Vollzeit, 2=Teilzeit, 3=Wochenendveranstaltung, 4=Fernunterricht, 5=E-Learning, 6=Blockunterricht, 0=Auf Anfrage. Mehrere Komma-getrennte Angaben möglich.

Parameter: anbieter (Optional)

Anbieter-ID: numerische ID (z.B. 16574). Mehrere Komma-getrennte Angaben möglich. Bei größeren Treffermengen ist für die Verwendung des Filters nach Anbietern eine Einschränkung auf Ort, Suchbegriff oder Umkreis erforderlich.

Beispiel:

bs=$(curl -m 60 \
-H "OAuthAccessToken: $token" \
'https://rest.arbeitsagentur.de/infosysbub/sprachfoerderung/pc/v1/bildungsangebot?systematiken=MC&page=0&umkreis=50&orte=Feucht_11.2147_49.375&sort=basc')