Rec APIrec.us ↗
Access Rec.us organization profiles, location details, court availability, instructor schedules, and group lessons via 8 structured JSON endpoints.
What is the Rec API?
The Rec.us API exposes 8 endpoints covering public reservation data from Rec.us organizations, including court availability, instructor lesson slots, group programs, and facility details. The get_location_availability endpoint returns open time slots per court across all locations in one call, with optional filters for sport, court name, and location. All responses are structured JSON with consistent IDs that chain across endpoints.
curl -X GET 'https://api.parse.bot/scraper/53ee12ed-bd2a-4e29-89e9-a6ecfca029dd/get_organization?organization_slug=san-francisco-rec-park' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve organization details by slug, including configuration, tabs, banners, lesson restrictions, and facility rental settings. One API call returns the full organization profile.
| Param | Type | Description |
|---|---|---|
| organization_slugrequired | string | URL slug of the organization (e.g. san-francisco-rec-park). |
{
"type": "object",
"fields": {
"id": "string - organization UUID",
"logo": "string - logo image URL",
"name": "string - display name",
"slug": "string - URL slug",
"config": "object - organization configuration including tabs, banners, lessons restrictions",
"fullLogo": "string - full logo image URL",
"description": "string - short description",
"displayName": "string - city/region display name",
"activityOrCategoryOrder": "array - ordered list of activity/category IDs"
},
"sample": {
"data": {
"id": "17380e28-7e02-4b52-82c5-fab18557fd7a",
"logo": "https://prod-rec-tech-img-bucket-8656aa2.s3.us-west-1.amazonaws.com/organization-17380e28-7e02-4b52-82c5-fab18557fd7a/detail.jpg",
"name": "San Francisco Rec & Park",
"slug": "san-francisco-rec-park",
"config": {
"tabs": {
"coaching": {
"order": 2
},
"programs": {
"name": "Lesson Packs",
"order": 3
},
"locations": {
"name": "Court Reservations",
"order": 1
}
}
},
"description": "Official SF organization - ",
"displayName": "San Francisco",
"activityOrCategoryOrder": []
},
"status": "success"
}
}About the Rec API
Organization and Location Data
Start with get_organization, which accepts an organization_slug (e.g. san-francisco-rec-park) and returns the full organization profile: UUID, logo URLs, display name, configuration object (tabs, banners, lesson restrictions), and an ordered list of activity/category IDs. get_locations then lists every published facility under that organization, each with coordinates (lat/lng), formatted_address, hours_of_operation, courts_count, and images. For a single facility, get_location_detail adds the courts array — including per-court pricing, available_slots, and allowed_durations — alongside play_guidelines (markdown-formatted reservation rules), access_info, getting_there_info, and default_reservation_window in days.
Court Availability
get_location_availability is the primary availability endpoint. It accepts organization_slug and optional filters: location_id (UUID), location_name (case-insensitive substring), sport (e.g. pickleball, tennis, badminton), and court_name (exact match). The response returns one entry per court with allowed_durations_minutes, pricing, and the available time slots for the booking window. Omitting the location filters returns availability across every facility in the organization simultaneously.
Instructors and Lessons
get_instructors returns all instructors for an organization with full_name, short_description, certifications, tags, per-sport hourly_rate, and upcoming available lesson slots. get_open_lessons narrows to bookable 1-on-1 slots and accepts filters for sport, instructor_id, and date (ISO YYYY-MM-DD). Each slot includes instructor_name, sport_name, hourly_rate, and start_time. For group programs, get_group_lessons covers sessions in the next 90 days, returning capacity, spots_remaining, recommended_level, instructor_names, and the session schedule. Both lesson endpoints accept a sport filter.
Sports Catalog
get_sports returns a global catalog of all sport and activity types on the platform — each with id, name, and description. These IDs correspond to the sport associations on courts, instructors, and group lessons, making it straightforward to map sport names to IDs when building filters for other endpoints.
The Rec API is a managed, monitored endpoint for rec.us — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rec.us 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 rec.us 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 court-finder app that shows open pickleball or tennis slots near a user's location using
get_location_availabilityfiltered by sport. - Display a facility directory with addresses, hours, and court counts pulled from
get_locationsfor a given city parks organization. - List available private lesson instructors with their hourly rates and certifications via
get_instructorsfor a rec center booking widget. - Monitor remaining capacity for group programs using
spots_remainingfromget_group_lessonsto surface classes that are nearly full. - Aggregate upcoming 1-on-1 lesson slots by instructor using
get_open_lessonsfiltered byinstructor_idfor a coach's personal scheduling page. - Cross-reference the
get_sportscatalog with instructor sport associations to categorize and filter coaching staff by discipline. - Pull court-level booking rules and access instructions from
get_location_detailto populate a pre-visit information page.
| 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.
Does Rec.us have an official developer API?+
What does `get_location_availability` return and how can I filter it?+
get_location_availability returns one entry per court with available time slots, pricing, and allowed reservation durations. You can narrow results with four optional parameters: location_id (exact UUID match), location_name (case-insensitive substring), sport (e.g. tennis or pickleball), and court_name (exact match). Omitting all filters returns availability across every location in the organization.Does the API cover booking history or confirmed reservations for a user?+
How far ahead does court availability data extend?+
get_location_detail includes a default_reservation_window field per location that specifies how many days in advance reservations open. Availability slots returned by get_location_availability reflect that window. The exact window varies by organization and location.