Read the studio variants
codes are the variants the studio offers (the codes a service's variants must list, once each): for a detailing
studio the car sizes, for a GENERIC studio the list it defined itself. defaults are the prices a new service is
prefilled with, null until the studio sets them; each carries the display label and customerPickable (false =
staff only, a customer is not offered it). 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
The variants.
application/json- response
codes*array<string>The variants the studio's industry offers, in display order.
defaults*array<>|nullcurl -X GET 'https://api.shyni.io/api/v1/catalog/variants' \ -H 'Authorization: Bearer shyni_sk_test_YOUR_KEY'Response 200
The variants.
{ "codes": [ "string" ], "defaults": [ { "code": "string", "label": "string", "customerPickable": true, "priceMultiplier": 0, "extraMinutes": 0 } ]}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."}