Storeforma Docs

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/json

List products

GET /products returns a paginated catalog and requires catalog:read. GET /products/{id} returns one product.

ParameterMeaning
pagePage number, starting at 1.
limit15 by default, 50 maximum.
filter[name]Part of a product name.
filter[sku]Exact SKU.
include=offersIncludes 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

AbilityEndpoints
catalog:readGET /products, GET /products/{id}
catalog:writePUT/PATCH /catalog/products/{external_id}; PUT /catalog/categories/{external_id}; PUT /catalog/tags/{external_id}
orders:readGET /orders
orders:write-statusPOST /orders/{reference}/status
content:readGET /content/pages
content:writePUT /content/pages/{external_id}; POST /content/pages/{external_id}/publish; POST /content/pages/{external_id}/unpublish

Rules, limits, and errors