Index (create or replace) many bookables in one call
Indexes up to 500 bookables — creating or replacing each — for initial sync or bulk updates. Not atomic: each item succeeds or fails on its own and the response reports the outcome per input index
JWTAuthorizationBearer <JWT>Bearer JWT. Required on every endpoint except /health
Either a single bookable, or a { batch: [...] } of up to 500. Both return the same per-item results
application/json- body
One bookable to create or replace, keyed by type + externalId
type*EntityTypeCustomer-defined entity type. Lowercase, created on first use, bound to one role per project
^[a-z][a-z0-9_]{0,63}$externalId*string1 <= length <= 255name*string1 <= length <= 200status?string"active""active""archived"attributes?Free-form JSON describing the entity. Indexed and filterable. Keys match ^[A-Za-z][A-Za-z0-9_]{0,63}$; ≤ 32 KB serialized; nesting depth ≤ 4
Per-item results
application/json- response
results*array<>meta*curl -X POST 'https://api.slotr.dev/v1/index' \ -H 'Content-Type: application/json' \ -d '{ "type": "string", "externalId": "string", "name": "string"}'{ "results": [ { "index": 0, "status": "created", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "error": { "code": "invalid_request", "message": "string", "details": { "fields": [ { "path": "string", "message": "string" } ] } } } ], "meta": { "created": 0, "updated": 0, "failed": 0 }}Service and dependency health GET
Previous Page
Search bookables by attribute filters POST
Runs a structured, deterministic search over one bookable type using AND-combined attribute filters. Filtering on an attribute path no entity of the type has returns 400 with the valid paths. Prices use the money convention { amount (integer minor units), currency (ISO 4217) }; filter on price.amount