{"ok":true,"site":{"host":"tennis.marvinaziz.de","url":"https://tennis.marvinaziz.de/","type":"live","desc":"Find live public tennis and pickleball court availability in San Francisco and Mountain View, with travel times and API docs.","tools":[{"name":"sf_tennis_get_courts","kind":"answer","impl":"imperative","description":"Court metadata for SF Tennis: locations, courts, pricing, booking links. availableSlots is always empty and totals are zero server-side (slotsPending:true) because rec.us blocks server runtimes. Use sf_tennis_find_slots for live openings.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","enum":["tennis","pickleball"]},"city":{"type":"string","enum":["sf","mountain-view"]}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"sf_tennis_find_slots","kind":"act","impl":"imperative","description":"Live bookable court openings from SF Tennis, computed in the page where rec.us is reachable. Same pipeline as the site UI: metadata plus per-court rec.us availability, filtered to your query. Prefer passing a specific date; week-wide queries return large payloads. Times are America/Los_Angeles.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","enum":["tennis","pickleball"],"description":"Defaults to tennis."},"city":{"type":"string","enum":["sf","mountain-view"],"description":"Defaults to sf."},"date":{"type":"string","description":"Single day as \"YYYY-MM-DD\". Omit for the whole week (large)."},"weekendOnly":{"type":"boolean"},"timeFrom":{"type":"string","description":"Earliest start as \"HH:MM\"."},"timeTo":{"type":"string","description":"Latest start as \"HH:MM\"."}}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"sf_tennis_get_directions","kind":"act","impl":"imperative","description":"Walking and driving estimates from an origin to court locations via the SF Tennis Mapbox proxy, plus a Google Maps transit link per location. Pass origin explicitly as 'lat,lng'; omit it for the San Francisco default. Never use the visitor's geolocation without asking. Max 50 destinations.","inputSchema":{"type":"object","properties":{"origin":{"type":"string","description":"Origin as 'lat,lng'."},"destinations":{"type":"array","maxItems":50,"items":{"type":"object","required":["id","lat","lng"],"properties":{"id":{"type":"string"},"lat":{"type":"number"},"lng":{"type":"number"}}}}},"required":["destinations"]},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"sf_tennis_get_docs","kind":"answer","impl":"imperative","description":"Fetch the SF Tennis llms.txt guide for API usage instructions.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute","page":"/","pages":["/"]}],"category":"Travel & Events","favicon":"/favicons/tennis.marvinaziz.de.png","apiSurface":"polyfill","toolCount":4}}