Back to Integrations
Sports & RecreationLive · 17 actions

Rec.us API

Integuru generates a production-ready HTTP API for Rec.us, the court and facility reservation platform used by city parks departments. 17 verified actions run on your own Rec.us login: find regions, locations and court availability, price a court slot, list programmed activities and instructors, and read your household, bookings, payments and notification settings.

npm install -g integuru
Backed byY Combinator100 API calls/month free

17

Verified actions live today

<3 sec

Response latency per call

99.9%+

Reliability rate on generated APIs

24/7

On-call maintenance on Production plans

Integration facts

Authenticates against
https://www.rec.us/moscone
Authentication
Login flows, including 2FA, handled by Integuru using your own Rec.us credentials.
Approach
Direct HTTP requests, with no browser automation or RPA involved.

Endpoints

Available actions

Click an action to expand its parameters

Don't see the action you need?

The actions above cover the most common Rec.us integration patterns, but they're not the full picture. Integuru can build additional workflows for any capability the platform exposes. Our Managed Service handles scoping, building, and maintaining custom actions on your behalf, so just let us know what you need.

Guide

Rec.us integration guide

Does Rec.us have a public API?

No. Rec.us publishes no public developer API or developer documentation for the reservation platform that cities use to run their tennis and pickleball courts, fields and recreation programmes. Integuru's Rec.us integration provides 17 verified actions over direct HTTP requests, authenticated with your own Rec.us login: court availability by region, slot pricing, facility schedules, programmes and instructors, and your household's bookings and payments.

What you can do with the Rec.us API

Say you want a pickleball court in San Francisco next Tuesday after work. The actions follow the same order you would take on the site: find the region, find an open court, price the slot, then check what the household already has booked.

Find an open court. list_regions returns the region ids; there is no free-text location search, so a region id is required everywhere else. get_region_court_availability takes that region_id and returns each facility's published courts, with available_only to keep courts that have at least one open slot and free_only to keep courts priced at zero. Each court carries a site_id and its court_sport_ids. get_court_availability_calendar takes one site_id and returns that court's calendar. search_locations narrows facilities by region_id (one or several, combined as a union) or instructor_id; name_contains filters the fetched page on the client, so raise page_size above its default of 10 before relying on it. get_location_details and get_location_schedule take a location_id UUID, the latter with a start_date and optional end_date in YYYY-MM-DD.

Price the slot. get_reservation_price prices a court slot from a court_sport_id (the join id from the availability response, not the site_id or sport_id) or from a site_id, together with from_local and to_local. Those two must be naive local timestamps in the facility's timezone, YYYY-MM-DD HH:MM:SS with a space; Rec.us returns HTTP 500 for ISO 8601 or offset forms. Pass participant_user_id to price for a specific household member so resident and member discounts apply. The same action prices an existing reservation_id, a programmed section_id or a single session_id.

Programmes and lessons. list_sports returns sport UUIDs. list_programmed_activities scopes by exactly one of location_id or region_id, optionally narrowed by sport_ids, over a window that defaults to today plus 90 days. list_instructor_lessons takes a location_id and returns the private-lesson instructors there; get_instructor_detail takes an instructor_id.

Your account. get_my_profile and list_household_members return the signed-in user and household. list_my_bookings filters by booking_statuses (planned, pending, confirmed), booking_types and time_statuses, embeds locations, reservations and sites by default through include, sorts with a - prefix for descending, and pages at 25. Set exclude_canceled to false to see cancelled bookings. list_payment_history pages receipts 1 to 100 at a time, get_payment_summary totals the household, and get_notification_preferences reads notification settings.

Making the reservation is the one step not in the verified set, and the Managed Service builds it against your account starting from the court_sport_id and priced slot these actions return.

Who uses this

Court-finder assistants take a sport, a neighbourhood and an evening, call get_region_court_availability with available_only, price the two best slots with get_reservation_price and answer in one turn, which is the low-latency tool-calling loop described on the AI agents page. Household apps run list_my_bookings and list_payment_history so a family sees court time, swim programmes and receipts in one place. Teams covering all of a city's public recreation pair this page with ActiveNet SF RecPark for classes and facility rentals and with CourtReserve for private clubs, all through one login-based auth model and one on-call maintenance contract.

Setup notes

Integuru authenticates against rec.us with the player's own account. The connection's base URL is the San Francisco deployment at rec.us/moscone, and list_regions returns whatever regions that account can browse. Every location_id, instructor_id, region_id and sport_id is a UUID in the 8-4-4-4-12 form. Dates are YYYY-MM-DD; the two pricing timestamps are the one exception and use a space, never a T. Start a session with list_regions, keep the court_sport_ids from the availability response, and you have every id the other actions need.

Get started

Install the CLI and connect your Rec.us login:

npm install -g integuru

Or sign in at app.integuru.com and add Rec.us. To add the reservation step itself, the Managed Service scopes and builds it against your account. The integrations catalogue lists the other court and recreation platforms.

Good to know

Before you start

Can I use it today?
Yes. Every action listed above has been verified against live Rec.us traffic. Install the CLI or sign in at app.integuru.com, connect your Rec.us account, and start calling the endpoints.
What if Rec.us changes or breaks?
On Production plans the Integuru team is on call around the clock, with auth auto-healing included, so target-platform changes get fixed by Integuru rather than by your engineers.
What does it cost?
Start on the Free plan at $0/month with 100 API calls/month. Production starts at $499/month with 24/7 on-call maintenance and auth auto-healing.

FAQ

Frequently asked questions