viewa/docs
API Reference

Get a product

GET
/products/{ref}

Fetch one published product by public id or by a SKU you have registered for it.

Authorization

AuthorizationBearer <token>

Publishable key (browser-safe), sent as Authorization: Bearer pk_…. This is the lower API-key tier and is sufficient for browser-safe routes that require the pk tier. Requests using a publishable key are additionally validated against the key's domain allowlist via the Origin header. Used for upload, areas, renders, polling, catalog reads, and history (history additionally requires a visitor token).

In: header

Path Parameters

ref*string

Either a prod_… public id or a SKU you have registered for the product on your instance — one path serves both. Disambiguation is by reserved prefix, not by trial: a value starting with any reserved prefix is only ever read as a public id, so a malformed one (wrong suffix length or a character outside base62) returns the uniform 404 rather than falling back to SKU matching. This also means a SKU can never be registered under a reserved prefix. SKU matching is case-insensitive and ignores surrounding whitespace; ELITE-ROLLER-01, elite-roller-01 and Elite-Roller-01 all resolve to the same registration, which is stored exactly as it was entered.

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/products/prod_3xK9aQ0ZbW7mNc2LpRvT"
{  "id": "prod_3xK9aQ0ZbW7mNc2LpRvT",  "name": "Elite Roller Blind",  "description": "string",  "image": {    "url": "https://api.viewa.com/api/media/file/roller-charcoal-512.jpg",    "alt": "Charcoal roller blind"  },  "restrictions": {    "width": {      "min": 300,      "max": 3000    },    "height": {      "min": 300,      "max": 2700    },    "sceneOnly": true  },  "categories": [    {      "slug": "roller-blinds",      "name": "Roller Blinds"    }  ],  "stylesLabel": null,  "styles": [    {      "styleKey": "s-wave",      "label": "S-wave",      "image": {        "url": "https://api.viewa.com/api/media/file/roller-charcoal-512.jpg",        "alt": "Charcoal roller blind"      }    }  ],  "styleOptions": [    {      "name": "Fabric Direction",      "type": "rollDirection",      "values": [        {          "value": "standard",          "label": "Standard roll",          "image": {            "url": "https://api.viewa.com/api/media/file/roller-charcoal-512.jpg",            "alt": "Charcoal roller blind"          }        }      ],      "allowedValues": [        "standard",        "reverse"      ]    }  ],  "materialOptions": [    {      "optionId": "slot_66c1f2a9e4b1c2d3f4a5b6c7",      "displayName": "Fabric",      "visibility": "visible"    }  ]}