Documentation Index
Fetch the complete documentation index at: https://mintlify.com/hack4impact-umd/breastfeeding-center-gw/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Client records in Firestore are populated by syncing data from Acuity, Squarespace, and Booqable. This group of endpoints allows manual sync triggers, real-time webhook ingestion from Acuity, and direct retrieval of stored client profiles. All endpoints exceptPOST /clients/hooks/acuity/client require a valid Firebase Auth ID token.
Base URL: https://us-east4-breastfeeding-center-gw.cloudfunctions.net/api
GET /clients/all
Returns all client documents stored in Firestore. Auth required: YesExample
Response
Returns a JSON array ofClient objects.
Firestore document ID for the client.
Client’s first name.
Client’s middle name (optional).
Client’s last name.
Client’s email address.
Date of birth in ISO 8601 format (optional).
Phone number (optional).
Insurance provider (optional).
Jane patient number used to link Jane appointment records (optional).
Squarespace customer ID (optional).
Stripe customer ID, used for Booqable rental lookups (optional).
Array of baby records associated with this client.
Array of other client records linked to this client (e.g. co-parents).
Error codes
| Status | Reason |
|---|---|
403 | Missing or invalid auth token |
500 | Internal error fetching clients from Firestore |
GET /clients/id/:client_id
Returns a single client by their Firestore document ID. Auth required: YesPath parameters
The Firestore document ID of the client to retrieve.
Example
Response
Returns a singleClient object (same fields as GET /clients/all).
Error codes
| Status | Reason |
|---|---|
403 | Missing or invalid auth token |
404 | No client document found for the given ID |
500 | Internal error fetching client from Firestore |
POST /clients/sync/acuity
Triggers a manual sync of client data from the Acuity Scheduling API into Firestore. Pulls appointments within the given date range and upserts matching client records. Auth required: YesBody
ISO 8601 start of the sync window. Defaults to one month ago.
ISO 8601 end of the sync window. Defaults to now.
Example
Response
"OK" on success.Sync statistics including counts of new and updated clients.
Error codes
| Status | Reason |
|---|---|
400 | Sync failed (returned with error details in the body) |
403 | Missing or invalid auth token |
POST /clients/sync/squarespace
Triggers a manual sync of client data from the Squarespace Commerce API into Firestore. Pulls orders within the given date range and upserts matching client records. Auth required: YesBody
ISO 8601 start of the sync window. Defaults to one month ago.
ISO 8601 end of the sync window. Defaults to now.
Example
Response
"OK" on success.Sync statistics including counts of new and updated clients.
Error codes
| Status | Reason |
|---|---|
400 | Sync failed (returned with error details in the body) |
403 | Missing or invalid auth token |
POST /clients/sync/booqable
Triggers a manual sync of client data from Booqable (via the Stripe integration) into Firestore. Pulls rental records within the given date range and upserts matching client records. Auth required: Yes Booqable client data is also synced automatically by thebooqableSync scheduled function, which runs every 6 hours over a rolling 1-week window.
Body
ISO 8601 start of the sync window. Defaults to one month ago.
ISO 8601 end of the sync window. Defaults to now.
Example
Response
"OK" on success.Sync statistics including counts of new and updated clients.
Error codes
| Status | Reason |
|---|---|
400 | Sync failed (returned with error details in the body) |
403 | Missing or invalid auth token |
POST /clients/hooks/acuity/client
Acuity webhook endpoint for real-time client sync. Acuity calls this URL whenever an appointment changes. The request is authenticated via Acuity’s HMAC webhook signature — do not call this endpoint directly. Auth required: No (verified via Acuity webhook signature)Body (sent by Acuity)
Acuity appointment ID for the changed appointment.
The webhook action type. The endpoint is designed for
"appointment.changed".Behavior
- Fetches the full appointment from the Acuity API using the provided
id. - Upserts the associated client record in Firestore.
Error codes
| Status | Reason |
|---|---|
400 | Missing appointment ID, or the sync operation failed |
403 | Webhook signature verification failed |
