Skip to main content

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:

ValueMeaning
trueThis person is still eligible — charge intro_price_amount
falseThey have used it — charge price_amount
nullYou 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.