Included in Scale and Enterprise

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

MethodEndpointDescription
GET/api/v1/productsList products with optional filtering by status, collection, or search query
GET/api/v1/products/:idGet a single product with variants and options
GET/api/v1/ordersList orders with optional status, payment, and date filters
GET/api/v1/orders/:idGet a single order with line items
PATCH/api/v1/orders/:idUpdate order status, fulfillment, tracking, or notes (requires write scope)
GET/api/v1/customersList customers with optional search
GET/api/v1/customers/:idGet a customer with addresses
GET/api/v1/collectionsList collections
GET/api/v1/inventoryList inventory levels for variants, with optional low-stock filter
PATCH/api/v1/inventoryUpdate inventory quantity for a variant (requires write scope)

Errors

The API returns standard HTTP status codes with JSON error messages.

401Unauthorized — missing or invalid API key
403Forbidden — wrong plan or insufficient scope
404Not found — resource doesn't exist or isn't in your store
429Rate limited — too many requests
500Server error

Webhooks

Receive real-time notifications when events happen in your store. Create webhook endpoints in Settings → Developer.

Supported events

order.createdFired when a new order is placed
order.updatedFired when an order is updated
order.cancelledFired when an order is cancelled
order.fulfilledFired when an order is fulfilled
product.createdFired when a product is created
product.updatedFired when a product is updated
product.deletedFired when a product is deleted
customer.createdFired when a customer is created
customer.updatedFired when a customer is updated
inventory.updatedFired 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.

Stay in the loop

Subscribe to our newsletter for product updates, tips & tricks, and more.

No spam · Unsubscribe anytime