BZAEK APIbzaek.de ↗
Access GOZ and GOÄ dental fee schedule data from BZAEK: billing codes, point values, fee factors, analog services, court rulings, and official statements.
What is the BZAEK API?
The BZAEK GOZ API covers 10 endpoints for extracting German dental fee schedule data from the Bundeszahnärztekammer, including full GOZ code details with point values, euro fees at 1.0x, 2.3x, and 3.5x multipliers, analog service catalogs, court rulings, and official position statements. Endpoints like get_goz_code_detail return fields such as billing_provisions, often_billed_with, and commentary alongside the core fee breakdown, giving billing systems everything needed to validate and document dental charges.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/67801aba-31fa-45b8-98de-f7ab8cc1a2fb/get_goz_sections' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bzaek-de-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: BZAEK GOZ API — German dental fee schedule navigation."""
from parse_apis.bzaek_goz_api import Bzaek, SectionSlug, CodeNotFound
client = Bzaek()
# List all GOZ sections (A through L) — each section groups codes by specialty.
for section in client.sections.list(limit=5):
print(section.letter, section.name)
# Construct a section by slug and list its codes.
implant_section = client.section(SectionSlug.IMPLANTOLOGISCHE_LEISTUNGEN)
for code_summary in implant_section.codes(limit=3):
print(code_summary.code, code_summary.label)
# Drill into a specific code's full detail via the section sub-resource.
allgemein = client.section(SectionSlug.ALLGEMEINE_ZAHNAERZTLICHE_LEISTUNGEN)
detail = allgemein.code_details.get(code="0010")
print(detail.code, detail.points, detail.description)
for factor, amount in detail.fees.items():
print(f" {factor}: {amount}")
# Search for GOZ-related terms across the site.
result = client.searchresults.search(query="Implantat", limit=1).first()
if result:
print(result.title, result.url)
# Typed error handling: catch CodeNotFound for invalid codes.
try:
allgemein.code_details.get(code="9999")
except CodeNotFound as exc:
print(f"Code not found: {exc}")
print("exercised: sections.list / section.codes / code_details.get / searchresults.search / CodeNotFound")
Returns all GOZ sections (A through L) with their names, slugs, and URLs. Each section organizes the fee schedule by dental specialty area. Use the slug from results to drill into individual sections.
No input parameters required.
{
"type": "object",
"fields": {
"sections": "array of section objects with letter, name, url, and slug"
},
"sample": {
"data": {
"sections": [
{
"url": "https://www.bzaek.de/goz/goz-kommentar/allgemeine-zahnaerztliche-leistungen.html",
"name": "Allgemeine zahnaerztliche Leistungen",
"slug": "allgemeine-zahnaerztliche-leistungen",
"letter": "A"
},
{
"url": "https://www.bzaek.de/goz/goz-kommentar/prophylaktische-leistungen.html",
"name": "Prophylaktische Leistungen",
"slug": "prophylaktische-leistungen",
"letter": "B"
}
]
},
"status": "success"
}
}About the BZAEK API
GOZ Code Data
The get_goz_sections endpoint returns all sections A through L of the GOZ fee schedule, each with a slug used as the required section_slug parameter in downstream calls. list_goz_codes_by_section then lists every 4-digit code in a given section — code number, display label, and detail URL. For full data on a single procedure, get_goz_code_detail requires both code and section_slug and returns description, points, a fees object mapping each factor label (1.0x, 2.3x, 3.5x) to a euro amount, billing_provisions, commentary, additional_effort, and the often_billed_with array of related codes. A pdf_link field is included when a PDF resource is available.
Bulk and Overview Retrieval
get_all_goz_codes iterates across all sections and returns code details in bulk; the optional limit integer parameter caps how many records are fetched, which is useful for testing or partial imports. get_goz_sections_overview returns a flat view of all sections and their codes with a total_codes integer, useful for building navigation or validating coverage without fetching individual detail pages.
Analog Codes, GOÄ, and Search
get_analog_codes returns the analog billing catalog organized by section — these entries cover procedures without a direct GOZ number and are returned as service description strings grouped under section names. get_goae_info returns the page title, explanatory content text, and an array of PDF download objects (label, url) covering GOÄ codes relevant to dental practice. The search_goz endpoint accepts a query string and returns matching results with title, url, and snippet fields from the BZAEK site.
Legal and Regulatory Data
get_urteiledatenbank returns the court rulings database, with each ruling carrying title, category, description, and url to the full text. get_stellungnahmen_zur_goz returns the BZAEK's official position statements on GOZ billing questions as an array of objects with title and url. Both endpoints require no input parameters and are suitable for building compliance reference tools or keeping a local rulings index up to date.
The BZAEK API is a managed, monitored endpoint for bzaek.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bzaek.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bzaek.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a dental practice billing tool that validates procedure codes against point values and fee factors from
get_goz_code_detail. - Generate a cross-reference table of codes commonly billed together using the
often_billed_withfield from code detail responses. - Populate a searchable GOZ code database using
get_all_goz_codeswith alimitfor incremental imports. - Display analog billing service options grouped by section using
get_analog_codeswhen no direct GOZ code applies. - Build a compliance dashboard that surfaces new court rulings and BZAEK position statements from
get_urteiledatenbankandget_stellungnahmen_zur_goz. - Integrate GOÄ PDF resources into a dentist-facing reference app using the
downloadsarray fromget_goae_info. - Enable procedure search within a practice management system using the
search_gozendpoint with a free-textquery.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does BZAEK offer an official developer API?+
What does `get_goz_code_detail` return beyond the basic fee amounts?+
get_goz_code_detail returns a fees object with euro amounts at each billing factor (1.0x, 2.3x, 3.5x), the points value with unit, a description of the procedure, billing_provisions (the rules governing when the code can be billed), commentary from expert sources, additional_effort justifications, an often_billed_with array of related codes, and an optional pdf_link. Both code and section_slug are required inputs.Does the API expose historical GOZ fee schedule versions or changelog data?+
Can I retrieve individual court rulings in full text through the rulings endpoint?+
get_urteiledatenbank returns each ruling's title, category, description summary, and a url pointing to the full text — but the full ruling text itself is not returned inline. The API covers index-level data; you can fork it on Parse and revise to add an endpoint that fetches and returns the full ruling content from each url.Is there pagination support for the search or code listing endpoints?+
search_goz and list_goz_codes_by_section do not expose pagination parameters — results are returned as a single array per call. get_all_goz_codes accepts a limit integer to cap total records returned. You can fork this API on Parse and revise it to add offset or page parameters if your use case requires paginated access.