Join the waitlist
Offerings

Create or replace an offering for a bookable

PUT
/v1/bookables/{type}/{externalId}/offerings/{offeringExternalId}

Creates or fully replaces one offering of a bookable, keyed by your own offeringExternalId so re-sending replaces rather than duplicates. The price is stored server-side and is the only amount the checkout charges. The bookable must already exist in your project

Authorization

JWT
headerAuthorizationBearer <JWT>

Bearer JWT. Required on every endpoint except /health

Path Parameters

type*string

Customer-defined entity type, e.g. "listing" or "doctor"

Match^[a-z][a-z0-9_]{0,63}$
externalId*string

The entity's id in the customer's database

Length1 <= length <= 255
offeringExternalId*string

Your own id for the offering; re-sending it replaces that offering

Length1 <= length <= 255

Request Body

application/json
  1. body

Upsert body for an offering; price is stored and charged server-side

name*string
Length1 <= length <= 200
priceAmount*integer

Price in minor units (e.g. cents)

Range0 <= value
currency?string

ISO 4217 currency code

Default"BRL"
durationMin*integer
Range1 <= value
availability?array<>
Default[]
status?string
Default"active"
Value in"active""archived"
sortOrder?integer

Response Body

The stored offering

application/json
  1. response

A named option a bookable can be booked for, with its own server-held price, duration and weekly availability

id*string

Stable offering id a booking link and checkout reference

name*string
priceAmount*integer

Price in minor units (e.g. cents); always server-held

currency*string

ISO 4217 currency code

durationMin*integer

Duration in minutes

availability?array<>

Weekly recurring availability windows

Example Request
curl -X PUT 'https://api.slotr.dev/v1/bookables/string/string/offerings/string' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "priceAmount": 0,
  "durationMin": 1
}'
Example Response
{
  "id": "string",
  "name": "string",
  "priceAmount": 0,
  "currency": "string",
  "durationMin": 0,
  "availability": [
    {
      "dayOfWeek": 0,
      "startTime": "string",
      "endTime": "string"
    }
  ]
}