Skip to content

Create an API key, call GET /me to check it works, then list, create, and read back a product. Five calls, five minutes.

In the back office, go to Integrations > API & apps and create a key. Choose the scopes it needs; for this walkthrough pick catalog:read and catalog:write. The plaintext key is shown once, so copy it somewhere safe.

Call GET /me. It returns the store this key belongs to, the scopes it carries, and its own id and name, so it doubles as a connection test.

Terminal window
curl https://api.oletapp.com/your-store/v1/me \
-H "Authorization: Bearer olet_live_YOUR_API_KEY"
{
"data": {
"store_name": "Your Store",
"domain_prefix": "your-store",
"scopes": ["catalog:read", "catalog:write"],
"key": { "id": "...", "name": "Quickstart key" }
}
}

domain_prefix is the prefix every other path in this guide uses in place of your-store.

GET /products returns full product documents, not summaries. Add ?limit=1 to keep the first response short.

Terminal window
curl "https://api.oletapp.com/your-store/v1/products?limit=1" \
-H "Authorization: Bearer olet_live_YOUR_API_KEY"
{
"data": [
{ "id": "...", "name": "Existing product", "sku": "SKU-001", "retail_price": 1999, "codes": [], "tags": [], "version": "..." }
],
"next_cursor": "...",
"has_more": true
}

See pagination and polling for what next_cursor and has_more mean.

Only name and retail_price are required. retail_price is an integer number of cents, never a decimal dollar amount, so $12.99 is 1299. Leave out sku and OLET generates one that starts with PRD-.

Terminal window
curl -X POST https://api.oletapp.com/your-store/v1/products \
-H "Authorization: Bearer olet_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Cold brew concentrate", "retail_price": 1299}'
{
"data": {
"id": "...",
"name": "Cold brew concentrate",
"sku": "PRD-K3M9QX",
"retail_price": 1299,
"active": true,
"version": "..."
}
}

See money and quantities for the full rule on cents. To create a product with its barcodes, tags and suppliers in the same request, see write a whole product in one request.

Use the id from step 4 with GET /products/{id}.

Terminal window
curl https://api.oletapp.com/your-store/v1/products/PRODUCT_ID \
-H "Authorization: Bearer olet_live_YOUR_API_KEY"
{
"data": {
"id": "PRODUCT_ID",
"name": "Cold brew concentrate",
"sku": "PRD-K3M9QX",
"retail_price": 1299,
"active": true,
"codes": [],
"tags": [],
"suppliers": [],
"variant_attributes": [],
"components": [],
"version": "..."
}
}

See authentication for the full scope table and OAuth, or the full API reference for every field on every operation. If you are building with an AI tool, see Build with AI.