Skip to content
New Webhooks added: Inventory and Order modifications. Check the changelog →
Cartly Developers

GraphQL API

Query exactly the data you need with the Cartly GraphQL Storefront API.

Example Queries

graphql
query {
  products(page: 1, limit: 10) {
    edges {
      id
      title
      slug
      basePrice
      images
      variants {
        id
        sku
        price
        available
      }
    }
    pageInfo {
      page
      pages
      hasNextPage
    }
  }
}

Identifying the Store

Send X-Shop-ID with your Store ID — the shop UUID shown in the admin under Settings → Store Information. Your store slug (my-store) or its storefront host (my-store.mycartly.pro) are accepted too; the Store ID stays the canonical value. You can also send it as the shop_id query parameter.

A missing or malformed value answers 400. An unknown store slug or host answers 404. Both carry a message that says what to send.

Rate Limits

Mutations are limited to 30 per minute per shop and client IP; over the limit a mutation returns a GraphQL error with extensions.code = "RATE_LIMITED". Every request, queries included, also counts toward the API-wide per-IP limit, which answers 429 Too Many Requests with Retry-After (see the X-RateLimit-Limit / X-RateLimit-Remaining headers).

Prices (basePrice, price, subtotal) are integers in the shop currency's minor units (cents). Lists are paginated with page / limit; pageInfo carries total, pages and hasNextPage.