Booking Types
Requires an API key — see Authentication & Scopes. Read-only today; see below.
GET /booking-types
List a space's booking types, cursor-paginated. Scope: booking_types:read.
curl https://api.tatiya.space/v1/booking-types \
-H "Authorization: Bearer $TATIYA_API_KEY"
GET /booking-types/{id}
Read one booking type. Scope: booking_types:read.
curl https://api.tatiya.space/v1/booking-types/$TYPE_ID \
-H "Authorization: Bearer $TATIYA_API_KEY"
Is a member still eligible for the intro offer?
Every booking type carries intro_offer — the offer as the host configured it, which is
the same for everybody:
{
"intro_offer": {
"eligibility": "first_time_only",
"intro_price_amount": 0,
"applies_to_member": null
}
}
Add member_id to ask whether one person still has theirs:
curl "https://api.tatiya.space/v1/booking-types/$TYPE_ID?member_id=$MEMBER_ID" \
-H "Authorization: Bearer $TATIYA_API_KEY"
applies_to_member is a tri-state, and the difference matters:
| Value | Meaning |
|---|---|
true | This person is still eligible — charge intro_price_amount |
false | They have used it — charge price_amount |
null | You didn't ask (no member_id), or the type has no offer |
null is not false. Treating an unasked answer as "not eligible" charges first-timers
full price, which is the failure this field exists to prevent.
A member with no booking history in the space reads as eligible — that is what
first_time_only means, so you do not need them to be an existing member to ask.
This is advisory. The booking is priced when it is created: eligibility is re-resolved inside that transaction under a lock, so two simultaneous bookings cannot both claim one free session. Show it to price a checkout screen; do not treat it as a reservation.
Only on the single-booking-type read. The list endpoint always returns null — a verdict per
row would be one eligibility query per booking type per member, and a menu wants the offer, not
a per-person answer.
Writing isn't available yet
booking_types:write appears as a grantable scope, but nothing on this surface accepts it yet —
see Roadmap. Creating and editing booking types is admin-only today.