REST API documentation.
Connect external systems, automate workflows, and access your store data programmatically.
Authentication
All API requests require an API key sent in the Authorization header. Create keys in Settings → Developer in your dashboard.
curl -H "Authorization: Bearer sk_live_your_key_here" \ https://your-store.cartico.com/api/v1/products
Rate limits
60 requests per minute per API key. If you exceed the limit, you'll receive a 429 response with a Retry-After header.
Pagination
List endpoints support limit (max 250) and offset query parameters. The response includes total count, limit, and offset.
GET /api/v1/products?limit=25&offset=50 // Response { "products": [...], "total": 142, "limit": 25, "offset": 50 }
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/products | List products with optional filtering by status, collection, or search query |
| GET | /api/v1/products/:id | Get a single product with variants and options |
| GET | /api/v1/orders | List orders with optional status, payment, and date filters |
| GET | /api/v1/orders/:id | Get a single order with line items |
| PATCH | /api/v1/orders/:id | Update order status, fulfillment, tracking, or notes (requires write scope) |
| GET | /api/v1/customers | List customers with optional search |
| GET | /api/v1/customers/:id | Get a customer with addresses |
| GET | /api/v1/collections | List collections |
| GET | /api/v1/inventory | List inventory levels for variants, with optional low-stock filter |
| PATCH | /api/v1/inventory | Update inventory quantity for a variant (requires write scope) |
Errors
The API returns standard HTTP status codes with JSON error messages.
| 401 | Unauthorized — missing or invalid API key |
| 403 | Forbidden — wrong plan or insufficient scope |
| 404 | Not found — resource doesn't exist or isn't in your store |
| 429 | Rate limited — too many requests |
| 500 | Server error |
Webhooks
Receive real-time notifications when events happen in your store. Create webhook endpoints in Settings → Developer.
Supported events
| order.created | Fired when a new order is placed |
| order.updated | Fired when an order is updated |
| order.cancelled | Fired when an order is cancelled |
| order.fulfilled | Fired when an order is fulfilled |
| product.created | Fired when a product is created |
| product.updated | Fired when a product is updated |
| product.deleted | Fired when a product is deleted |
| customer.created | Fired when a customer is created |
| customer.updated | Fired when a customer is updated |
| inventory.updated | Fired when inventory levels change |
Verification
All webhook deliveries include an X-Cartico-Signature header with an HMAC-SHA256 signature. Verify the signature using the secret shown when the webhook is created.
// Verify webhook signature (Node.js) import crypto from "crypto"; function verifySignature(payload, signature, secret) { const expected = crypto .createHmac("sha256", secret) .update(payload) .digest("hex"); return crypto.timingSafeEqual( Buffer.from(signature), Buffer.from(expected) ); }
Get started
Log in, upgrade to Scale, and create an API key in Settings → Developer.


