---
title: Rate Limits / Pagination Conventions
slug: devdocs/rate-limits-pagination-conventions
docTags: 
createdAt: 2026-10-16T12:03:52.309Z
---

## Rate limits

:::BlockQuote
🔶 **TO CONFIRM (remove before publishing)**
No rate limit is documented in the material available so far. Confirm with the dev team whether a limit exists (requests per minute, concurrent requests) and which HTTP status goes with it. Then write the numbers here.
:::

Until then, design your integration to avoid unnecessary requests:

- Cache reference data that rarely changes (locations, price lists, categories) and refresh it on a schedule.
- Use **webhooks** (Delivery API) instead of polling for changes.
- Request only the fields you need.

## Pagination

Both APIs paginate with **cursors**.

| Arguments                 | `first`, `after`, `last`, `before`   |
| ------------------------- | ------------------------------------ |
| Total count               | `totalCount`                         |
| How to read the next page | Send `pageInfo.endCursor` as `after` |
| When to stop              | `pageInfo.hasNextPage` is `false`    |
| List field                | `items` (and `edges`)                |

```graphql
query GetCustomersPage($first: Int, $after: String) {
  customers {
    customer(first: $first, after: $after) {
      totalCount
      pageInfo {
        hasNextPage
        endCursor
      }
      items {
        publicKey
        firstName
        lastName
      }
    }
  }
}
```

```json
{
  "first": 30,
  "after": "<endCursor of the previous page>"
}
```

Fields that return a connection accept the cursor arguments. These are `customer`, `products`, `streets`, `country`, `companies`, `orders`, `promotion`, `deliveryStreets` and `driverUsers`.

Plain lists, such as `customerCategories`, `locations` or `currencies`, aren't paged. They return all items.

:::BlockQuote
💡 **TIP**
Use `totalCount` to show progress to your users (for example "30 of 309") instead of reading all pages first.
:::

:::BlockQuote
ℹ️ **INFO**
`orders` also needs order keys or a period of at most 1 year.
:::
