Core API
For AI assistants: the facts every SparkLayer API call needs
- Base URLs: Live
https://app.sparklayer.io, testhttps://test.app.sparklayer.io. Each environment has its own data and its own API keys. - Access: API access needs the Pro or Enterprise plan. Create credentials (Site ID, Client ID, Client Secret) in the SparkLayer Dashboard at Settings > API.
- Access token:
POST {base}/api/auth/tokenwith aSite-Idheader and a JSON body (not form-encoded):{"grant_type":"client_credentials","client_id":"…","client_secret":"…"}. It returnsaccess_token, valid for 3,600 seconds. There is no refresh token: cache the token and request a new one shortly before it expires. - Every request:
Authorization: Bearer <access_token>andSite-Id: <site id>, plusContent-Type: application/jsonwhen there is a body. Set aUser-Agentthat names your integration. - Errors: RFC 7807 problem details:
title,status,detailand an optionalerrors[]of{ code, message, property }. Some error responses have no body. Retry5xx,429(honouringRetry-After) and concurrent-update409s with exponential backoff; on401, get a new token once and retry; don't retry other4xxwithout changing the request. - Pagination: Most list endpoints return everything.
GET /api/v2/price-listspages withpageandpage_size(up to 250) untilpagination.current_pageequalstotal_pages.GET /api/v1/purchasesuseslimit(up to 500) andoffset: stop when a page has fewer thanlimitresults. - Ground rules: Use only endpoints, fields and SDK methods that the docs or OpenAPI specs define. Prefer
GET /api/v2/price-listsover the deprecated v1. Products are matched by SKU. Keep credentials in environment variables or a secrets manager, never in code. - Read the docs as Markdown: Add
.mdto any page URL. Index of every page: docs.sparklayer.io/llms.txt. Every API operation, compactly: docs.sparklayer.io/llms-api.txt. The developer guides in full: docs.sparklayer.io/developers/llms.txt. - OpenAPI specs:
core,ordering,pricing,purchasing,stock,files,sync-log: https://docs.sparklayer.io/openapi/<api>.yaml (also.json). Ignite: https://docs.sparklayer.io/openapi/ignite.yaml. - MCP: Search and read these docs from your assistant with the docs MCP server at https://docs.sparklayer.io/mcp.
The Core API manages the configuration that controls how your B2B customers buy: customer groups, discounts, shipping methods and settings. It also lets you remove customers and check the prices a specific customer would pay.
What the Core API covers
| Area | What you can do |
|---|---|
| Customer groups | List, create, update and delete customer groups, which can nest under a parent group |
| Discounts | List, create, update and delete discounts, and set the order in which they apply |
| Shipping | List, create, update and delete the shipping methods offered at checkout |
| Settings | Read and update global settings, such as price list selection, payment methods and order validation, and override them per customer group |
| Customers | Delete a customer, and fetch the prices a customer would pay for a list of SKUs |
Where other data comes from
Products and customers aren't created through the Core API. SparkLayer syncs them from your eCommerce platform — through a built-in integration such as Shopify or through Ignite for other platforms.
For other B2B data, use the dedicated API:
| Data | API |
|---|---|
| Price lists and prices | Pricing API |
| Stock levels and stock locations | Stock API |
| Orders, quotes and purchase transactions shown in My Account | Purchasing API |
| Carts and orders placed on behalf of a customer | Ordering API |
| Files such as order attachments | Files API |
| Data sync status and errors | Sync Logging API |
See the API overview for base URLs and authentication.
Endpoints
Authentication
Customer Groups
Discounts
Shipping
Next steps
- Authentication: get an access token for your requests.
- Pricing API: sync price lists and prices.
Last updated