| Page | Use it to |
|---|---|
| Read the widget reference | Read the widget attributes and supported values. |
| Add the widget to a product page | One script tag. Your product template supplies the product code. |
| Import your own data | Send a bundle, check a dry run, then apply it. |
01Create and check an API key
- Open Developers in Supplier Admin or Retailer Admin.
- Create a key with
api:readorapi:write. - Save the secret when it appears; the list only shows masked keys.
- Keep it on your server.
curl https://api.test.stockisto.com/api/public/v1/ping \
-H "Authorization: Bearer $STOCKISTO_API_KEY"
02Rate limits
| Limit | What applies |
|---|---|
| Per API key | The default is 300 requests per minute per key. |
| Monthly requests | Your plan also sets a monthly quota. A 429 response carries Retry-After. |
| Key check | Ping is exempt from the API plan gate and monthly quota; a successful ping does not grant API access. |
03Errors
Errors use application/problem+json. A 401 means the key is missing or invalid; 403 means its scope is insufficient. A 402 names the required feature. A 429 carries Retry-After.
{
"title": "Payment Required",
"status": 402,
"feature_required": true,
"feature_key": "api.access"
}
04Pages of results
Public API lists take limit (1 to 200, default 50) and cursor. Send the response’s nextCursor as the next request’s cursor, until it is null. Keep the cursor unchanged. A malformed cursor returns 400.
curl 'https://api.test.stockisto.com/api/public/v1/stock?limit=1' \
-H "Authorization: Bearer $STOCKISTO_API_KEY"
{ "data": [], "nextCursor": null }
05Versions
The version is in the path: /api/public/v1. Read the changelog before updating your integration.
06TEST and production
Every executable example uses TEST. Use the origins in your generated snippet and your own environment’s keys. Production MCP starts at go-live.
| Address | TEST | Production |
|---|---|---|
| API | api.test.stockisto.com | api.stockisto.com |
| CDN | cdn.test.stockisto.com | cdn.stockisto.com |
| MCP | api.test.stockisto.com/mcp | At go-live |
07The widget contract
-
The script loads asynchronously into a Shadow DOM host.
-
Saved embeds resolve before language, shape and data source selection.
-
Unknown types or views are refused.
-
Boot errors stamp
data-stockisto-erroron the script. -
Without a source, it reads
missing-data-sourceand paints nothing. -
The mount keeps a hidden sentinel so
div:emptyhost rules cannot hide it. -
Analytics sends only with
data-analytics-consent="true".
| Brand widgets | Retailer and installer widgets |
|---|---|
where-to-buy | store-availability |
guided-handoff | store-card |
store-locator | stock-alert |
installer-finder | installer-card |
08Which setting wins
| Limit | What applies |
|---|---|
| 1. Page attributes | Explicit page attributes override the saved widget, then defaults apply. Your page template supplies product, store or installer keys. |
| 2. Saved widget | The embed id loads the widget saved in the admin. |
| 3. Defaults | Omitted settings use saved values, then widget defaults. |
09Check difficult host pages
Check a narrow column, loading and a refused configuration with the real widget.
Loading