List availability blocks
The studio's closures and busy periods, studio-wide (workerId null) and per worker, oldest first, so
an integrator can learn the id to PATCH or DELETE. from / to narrow the list to blocks that
overlap that day window (to is exclusive); workerId returns that worker's blocks plus the studio-wide
ones. Blocks are live: what this lists is what GET /availability/starts already honours. Requires the
catalog:read scope; a publishable key cannot call it.
ApiKeyAuth catalog:readAuthorizationBearer <shyni_sk_live_*>An API key, issued once and never retrievable again: an organization key in the developer
portal, or a studio key in the studio's admin (Moje studio → API). Send as Authorization: Bearer shyni_sk_live_....
Scope: catalog:read
page?integer1 <= value1perPage?integer1 <= value <= 10020from?stringdateto?stringdateworkerId?stringOne page of blocks.
application/json- response
data*array<>meta*curl -X GET 'https://api.shyni.io/api/v1/availability/blocks' \ -H 'Authorization: Bearer shyni_sk_test_YOUR_KEY'Response 200
One page of blocks.
{ "data": [ { "id": "string", "workerId": "string", "startDate": "2019-08-24", "endDate": "2019-08-24", "kind": "BUSY", "type": "MANUAL", "reason": "string", "startTime": "string", "endTime": "string", "seriesId": "string" } ], "meta": { "page": 0, "perPage": 0, "total": 0 }}Response 400
A parameter, header or request body is missing, malformed, or out of range. A request body property the endpoint does not define answers UNKNOWN_FIELD instead, with field naming it.
{ "code": "INVALID_INPUT", "message": "Parameter perPage must be between 1 and 100."}Response 401
Missing, malformed, unknown, or revoked API key (INVALID_API_KEY).
{ "code": "INVALID_API_KEY", "message": "Missing or invalid API key."}Response 403
The key is valid but the request is refused. Branch on code: INSUFFICIENT_SCOPE (the key lacks the
permission this endpoint requires), PLAN_REQUIRED (the studio is not on a plan that includes API keys,
Pro and above), ORIGIN_NOT_ALLOWED, SECRET_KEY_IN_BROWSER, or DEMO_STUDIO on a write to the demo studio.
See Authentication and Scopes above.
{ "code": "INSUFFICIENT_SCOPE", "message": "This API key does not have the permission this endpoint requires."}Response 429
Burst rate limit exceeded.
{ "code": "RATE_LIMITED", "message": "Too many requests. Retry after the time given in the Retry-After header."}