Integration API · v1
Integration API
A stable API contract for every Storeforma store.
The store domain identifies the tenant, the issued key defines allowed actions, and data stays isolated within that store. Replace {store-domain} in every example with the relevant store domain.
Authentication
Create a key in the store admin’s API Keys section and send it with every request. Base URL: https://{store-domain}/api/v1/integrations
Authorization: Bearer {key}
Accept: application/jsonList products
GET /products returns a paginated catalog and requires catalog:read. GET /products/{id} returns one product.
| Parameter | Meaning |
|---|---|
| page | Page number, starting at 1. |
| limit | 15 by default, 50 maximum. |
| filter[name] | Part of a product name. |
| filter[sku] | Exact SKU. |
| include=offers | Includes product variants. |
curl -H "Authorization: Bearer {key}" \
+ -H "Accept: application/json" \
+ "https://{store-domain}/api/v1/integrations/products?limit=15&filter[sku]=SKU-1&include=offers"{
"current_page": 1,
"data": [{"id": 12, "name": "Product", "sku": "SKU-1", "quantity": 5,
"currency_code": "UAH", "min_price": 49000, "max_price": 49000}],
"per_page": 15, "total": 1
}Key abilities and endpoints
| Ability | Endpoints |
|---|---|
| catalog:read | GET /products, GET /products/{id} |
| catalog:write | PUT/PATCH /catalog/products/{external_id}; PUT /catalog/categories/{external_id}; PUT /catalog/tags/{external_id} |
| orders:read | GET /orders |
| orders:write-status | POST /orders/{reference}/status |
| content:read | GET /content/pages |
| content:write | PUT /content/pages/{external_id}; POST /content/pages/{external_id}/publish; POST /content/pages/{external_id}/unpublish |