# termine.de > termine.de is an online appointment-booking platform for local businesses in Germany. Businesses expose a > read-only, unauthenticated JSON API so AI assistants can discover them, list their services, check appointment > availability, and hand the user a link to finish booking. All dates are "YYYY-MM-DD" in the Europe/Berlin timezone. ## Appointment Discovery and Website Handoff API DISCOVERY ONLY. Never create or claim to create an appointment. Never collect customer details. Once the user has selected a service — and after an optional date availability check — give them the returned USER_WEBSITE_HANDOFF URL and stop. The user selects the exact time and completes the booking on termine.de. - [OpenAPI 3.1 contract](https://termine.de/api/v1/bookingdiscovery/openapi.json): the full machine-readable contract. - [API index](https://termine.de/api/v1/bookingdiscovery): entry point linking every endpoint below. - Find businesses: GET https://termine.de/api/v1/bookingdiscovery/search?lat={lat}&lon={lon}&radius={meters} — optionally filtered with &category={category} (valid values in the API index; radius defaults to 500 km, pass a sensible one) — or by name with ?q={text}. Returns bookable businesses with a discovery_url and booking_page_url, nearest first. - Business + services + availability: GET https://termine.de/api/v1/bookingdiscovery/{companyLocationID}. Present the returned services first. After the user chooses one, give them that service's USER_WEBSITE_HANDOFF next_action URL and stop. Use browse_services_handoff only when the user explicitly wants to browse all services on the website. - Verify a specific other date: GET https://termine.de/api/v1/bookingdiscovery/availability?companyLocationID={id}&serviceID={id}&date={YYYY-MM-DD}. The response contains availability plus the required USER_WEBSITE_HANDOFF next_action. Give that URL to the user and stop. ## Discovery - [XML sitemap](https://termine.de/sitemap-index.xml): lists every bookable business page (/buchen/...) for full crawls. ## Notes - There is no programmatic booking-creation endpoint; the user always finishes the booking on the website. - Availability answers (available_dates, next_available_date, the availability check) describe the base service with the smallest booking (one person, no options): a negative answer is definitive, a positive one means appointments exist — the exact times on offer depend on the persons/options the user selects on the booking page. Tell the user a positive answer is a first check, give them the returned USER_WEBSITE_HANDOFF URL, and stop.