116117 APIpatientennavi.116117.de ↗
Search the official 116117 German doctor directory by zip code, city, or state. Returns practitioner name, specialty, address, coordinates, and contact details.
What is the 116117 API?
The 116117 Patientennavi API provides access to Germany's official Arzt- und Psychotherapeutensuche directory through 2 endpoints, returning up to 120 practitioners per query with fields including name, specialties, address, phone, and GPS coordinates. The search_doctors endpoint resolves any German zip code or city name to a geographic area and returns nearby doctors sorted by distance, while search_doctors_by_state aggregates deduplicated results across an entire Bundesland.
curl -X POST 'https://api.parse.bot/scraper/af1561e8-0a2c-429b-b3e5-bda48c4020c9/search_doctors' \
-H 'X-API-Key: $PARSE_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"location": "Berlin"
}'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 patientennavi-116117-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: 116117 Arztsuche — find doctors near a German city or across a state."""
from parse_apis.patientennavi_116117_de_api import Patientennavi, State, InputNotFound
client = Patientennavi()
# Search for practitioners near Hamburg, cap total results to 10.
try:
for doctor in client.doctors.search(location="Hamburg", limit=10):
addr = doctor.address
print(f"{doctor.name} — {', '.join(doctor.specialties)} — {addr.street}, {addr.zip_code} {addr.city} ({doctor.distance_meters}m)")
except InputNotFound:
print("Location could not be resolved — check spelling.")
# Drill into the closest result for detail.
closest = client.doctors.search(location="Berlin", limit=1).first()
if closest is not None:
print(f"\nClosest in Berlin: {closest.salutation} {closest.first_name} {closest.last_name}")
print(f" Phone: {closest.phone}")
if closest.languages:
print(f" Languages: {', '.join(closest.languages)}")
if closest.accessibility:
print(f" Accessibility: {', '.join(closest.accessibility)}")
# Search an entire state using the State enum.
for doctor in client.doctors.search_by_state(state=State.BREMEN, limit=5):
print(f"{doctor.name} — {doctor.address.city} — {doctor.status}")
print("\nexercised: doctors.search / doctors.search_by_state")
Search for doctors and psychotherapists near a given German location. Accepts a German zip code or city name, resolves it to a geographic area, and returns up to 120 practitioners sorted by distance. Each result includes name, specialties, address, contact details, coordinates, spoken languages, accessibility information, and distance in meters. When more than 120 results exist the response indicates more_results_available=true; the API does not expose server-side pagination beyond this initial batch.
| Param | Type | Description |
|---|---|---|
| locationrequired | string | German zip code (e.g. '10115', '80331') or city name (e.g. 'Berlin', 'Hamburg', 'München'). The value is resolved to a geographic search area via the site's location API. |
{
"type": "object",
"fields": {
"doctors": "Array of doctor/practitioner records with full details",
"location": "Resolved location label used for the search",
"total_found": "Number of doctors returned in this response (max 120)",
"more_results_available": "Whether additional results exist beyond the returned batch"
}
}About the 116117 API
Endpoint Overview
The API exposes two POST endpoints. search_doctors accepts a single location parameter — either a German postal code such as 10115 or a city name such as München — and returns an array of doctors records, a resolved location label, a total_found count (capped at 120), and a more_results_available boolean indicating whether additional results exist beyond the returned batch.
search_doctors_by_state accepts a state parameter (the full German Bundesland name, e.g. Bayern or Nordrhein-Westfalen). It queries multiple representative cities within that state, deduplicates practitioners by name and address, and returns a combined doctors array alongside queried_locations (the resolved city labels actually searched) and total_unique_doctors.
Response Fields
Each doctor record in the doctors array contains the practitioner's full name, one or more specialty designations, street address, postal code, city, phone and/or fax numbers, and geographic coordinates (latitude/longitude). These fields are consistent across both endpoints, so downstream code can process results from either endpoint with the same schema.
Coverage and Limitations
Coverage is limited to practitioners listed in the 116117 directory, which is maintained by the Kassenärztliche Bundesvereinigung (KBV) and covers statutory health insurance (GKV) physicians and psychotherapists. Private-only practitioners not registered with the KBV may not appear. The search_doctors endpoint returns at most 120 results per query; if more_results_available is true, results beyond that batch are not directly paginated through this endpoint.
The 116117 API is a managed, monitored endpoint for patientennavi.116117.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when patientennavi.116117.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 patientennavi.116117.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 GP or specialist finder for a German patient-facing app using zip code proximity results
- Aggregate psychotherapist availability across a Bundesland using search_doctors_by_state for capacity planning
- Geocode practitioner locations from the coordinates field to render doctor maps for a given city
- Extract specialty distribution data across German states for healthcare market research
- Cross-reference 116117 directory listings with appointment booking platforms to identify gaps in coverage
- Populate a CRM with verified contact details (phone, address) for medical professionals in a target region
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.