{"name":"Playmore public availability API","version":"v1","description":"Read-only free court times of clubs that take bookings on Playmore. No key needed. Times are HH:MM in the club's timezone; booking_url opens that exact slot on playmore.pl (and in the Playmore app), where the player books and pays.","endpoints":[{"method":"GET","path":"/v1/venues/{venue_id}","description":"Club name, city, phone, timezone and bookable sports with their ids, lengths and courts.","example":"https://api.playmore.pl/v1/venues/40"},{"method":"GET","path":"/v1/venues/{venue_id}/availability","description":"Free start times of one sport on one day, grouped by start, with the free courts.","query":{"date":"YYYY-MM-DD, the club's calendar day (default: today at the club)","sport":"sport id from /v1/venues/{venue_id} (optional when the club sells one sport)","duration":"minutes, one of the sport's durations_min (default: the shortest)"},"example":"https://api.playmore.pl/v1/venues/40/availability?date=YYYY-MM-DD&sport=83&duration=60"}],"rules":{"rate_limit":"60 requests per minute per IP address; above that 429 with Retry-After","freshness":"answers may be up to 120 s old; the booking page is always current","errors":"JSON { error, message } with HTTP 400 (bad parameter), 404 (unknown club or path), 429, 502","versioning":"fields are only ever added within /v1; anything breaking ships as /v2","x_client":"optional header naming your integration (e.g. X-Client: fonio-squashpoint); used for usage statistics only"}}