Reference: Apprentice pay
Statutory minimum pay for apprentices (Mindestausbildungsvergütung) per training year, by start of training since 2020.
The apprentice minimum pay (Mindestausbildungsvergütung) under § 17 BBiG for the first to fourth year of training. What counts is the year in which the training starts: an apprentice who starts in 2024 still gets the amount of the 2024 cohort in the third year. The rule has been in the Vocational Training Act (BBiG) since 2020 and has been updated every year by official notice since 2024. Lower pay under a collective agreement only applies if the employer is bound by it.
Endpoints and calls
#| Access | Call |
|---|---|
| REST API | GET /hr/mindestausbildungsverguetung |
| History | GET /hr/mindestausbildungsverguetung/verlauf |
| SDK JavaScript | qk.hr.mindestausbildungsverguetung(…) |
| SDK Python | qk.hr.mindestausbildungsverguetung(…) |
| CLI | qk mindestausbildungsverguetung --beginn 2026-08-01 --ausbildungsjahr 2 |
| MCP tool | hr_mindestausbildungsverguetung |
Parameters
#| Name | Type | Required | Default | Allowed | Description |
|---|---|---|---|---|---|
beginn | date (YYYY-MM-DD) | no | heute | Start of training in the format YYYY-MM-DD, from 2020-01-01. Defaults to today; required for the 2nd to 4th training year. | |
ausbildungsjahr | integer | no | 1 to 4 | Training year 1 to 4. Without it, you get all four amounts. From the 2nd year on, only together with beginn. | |
bestandteil | text | no | ausbildungsjahr_1, ausbildungsjahr_2, ausbildungsjahr_3, ausbildungsjahr_4 | Return and cite only this component, for example for a single question (optional). Allowed values are the component ids. |
The API rejects unknown parameters with unbekannter_parameter. In addition there are format and trennzeichen, see CSV.
Response fields
#| Field | Type | Meaning |
|---|---|---|
datensatz | Text | Dataset id |
vorlaeufig | Boolean | true if not all values are set yet for the effective date |
werte | Object | Short form: component and value on the effective date, null for an announced value that is not set yet |
bestandteile | List | Per component: value or rate, validity, legal basis and source |
regeln | List | Rules from the law in sentences, each with its legal provision |
hinweise | List | Limits of the values or the calculation, in sentences |
lizenz | Text | Terms of use for the values |
stand | Date | Date of the last check against the source |
beginn | Date | Start: first day of the protection period (maternity protection) or start of training |
ausbildungsjahr | Integer or null | Requested training year, 1 to 4 |
mindestverguetung_monat | Decimal or null | Minimum pay per month in the requested training year |
zitat | Text | Ready-made sentence for citing, with value, validity, legal basis and source |
datenstand | Text | Id of the data snapshot: date and sequence number of the last changelog entry (/v1/aenderungen) affecting this dataset. The same datenstand means unchanged content, useful for auditors and for comparing two requests |
Components
#For each effective date, the response contains the components that apply, each with id, name, gruppe, einheit, wert, gueltig_ab, rechtsgrundlage, quelle, hinweis and naechster_wert. The werte object holds the same list in short form. A component is missing if it does not yet or no longer apply on that date.
| id | Component | Unit | First level | Current value | End |
|---|---|---|---|---|---|
ausbildungsjahr_1 | Minimum pay in the first year of training | euros per month | January 1, 2020 | €724 per month | open |
ausbildungsjahr_2 | Minimum pay in the second year of training | euros per month | January 1, 2020 | €854 per month | open |
ausbildungsjahr_3 | Minimum pay in the third year of training | euros per month | January 1, 2020 | €977 per month | open |
ausbildungsjahr_4 | Minimum pay in the fourth year of training | euros per month | January 1, 2020 | €1,014 per month | open |
Example
#Call with beginn = 2026-08-01, ausbildungsjahr = 2. The response is generated by the same code that answers the API.
History
#Every level since 2015 in one call, as JSON or with format=csv as CSV. The last two levels:
Error cases
#| Status | Code | When |
|---|---|---|
| 400 | ungueltiger_parameter | wrong format or a value outside: ausbildungsjahr (1 to 4); bestandteil (ausbildungsjahr_1, ausbildungsjahr_2, ausbildungsjahr_3, ausbildungsjahr_4) |
| 400 | unbekannter_parameter | a parameter this dataset does not have |
| 404 | kein_wert | outside the coverage (training starting in 2020 or later) or the value for this period has not been promulgated yet |
| 401, 429 | see errors | all error codes |
Schema for MCP
#This is how the MCP server describes the arguments of the tool hr_mindestausbildungsverguetung:
Source and freshness
#| Item | Content |
|---|---|
| Source | § 17 Abs. 2 BBiG, official notices on the minimum pay in the Federal Law Gazette (Bundesgesetzblatt) |
| License | Values from official works (§ 5 UrhG). Use of the compilation under the Quellenkontor terms of use. |
| Updates | yearly, announced by November 1 |
| Coverage | Germany, training starting in 2020 or later |
| Last checked | September 24, 2026 |
| Next expected change | notice for training starting in 2027 by November 1, 2026 |
Something missing or unclear? Write to us and we will extend the docs.