Blocking is organizer-controlled inventory: production holds, comps, sightline closures, press allocations, or seats not ready for sale. It is not a buyer hold and does not consume a booked-seat credit.
Block seats
/v1/events/:key/blockSecret key, dashboard session, or event:block manage tokencurl -sX POST "https://api.seatlayer.io/v1/events/ev_9f3a/block" \
-H "authorization: Bearer $SEATLAYER_SECRET_KEY" \
-H "content-type: application/json" \
-d '{"labels":["A-1","A-2"]}'Success returns:
{
"ok": true,
"blocked": ["A-1", "A-2"]
}Blocking is atomic across the requested labels. Every label must exist and be
free. If one is held, booked, blocked, or missing, nothing changes:
{
"error": "conflict",
"conflicts": [
{
"label": "A-2",
"status": "held"
}
]
}Schedule automatic release
Add a future epoch-ms releaseAt:
{
"labels": ["P-1", "P-2"],
"releaseAt": 1767200400000
}A past or invalid time does not schedule a release; the block remains until an explicit unblock. Store your intended release time in your own operation record because the basic block response returns only the blocked labels.
Unblock selected seats
/v1/events/:key/unblockSecret key, dashboard session, or event:block manage tokencurl -sX POST "https://api.seatlayer.io/v1/events/ev_9f3a/unblock" \
-H "authorization: Bearer $SEATLAYER_SECRET_KEY" \
-H "content-type: application/json" \
-d '{"labels":["A-1","A-2"]}'Non-blocked labels are ignored. The response contains the labels actually returned to sale.
Unblock all
/v1/events/:key/unblock-allSecret key, dashboard session, or event:block manage tokenNo body is required. A successful response is:
{
"ok": true,
"freed": 12
}Buyer and operator behavior
Blocked inventory is exposed to buyer surfaces as not_for_sale; buyers do not
see your internal reason. Live SDK and control-room views repaint after the
mutation without polling.
| State change | Use |
|---|---|
free → blocked |
block |
blocked → free |
unblock or unblock-all |
booked → free |
booking-safe cancellation |
free → booked from a trusted Platform backend |
direct inventory booking |
Checklist
- Secret keys are used only from a trusted server.
- Browser operator tokens carry only
event:blockwhen that is sufficient. - Batch conflicts are shown as a retry/reselect action.
- Scheduled-release times are future UTC epoch milliseconds.
- Blocking is not treated as a payment reservation.
- The host keeps its own reason and operator audit context.
For sections and zones, use inventory and availability.