Commerce · Reference
Limits
All default limits of the REST API and the MCP server in one table.
Limits at a glance
Defaults of a standard installation. The shop operator can raise the general rate limits and the URL cap; the other limits, including the write limit, are fixed. They apply to the REST API and the MCP server alike, except where noted.
| Limit | Value | Notes |
|---|---|---|
Page size |
Default 20, maximum 50 | Out-of-range values are rejected, not clamped. |
Product paging depth |
Result position 500 | truncated is true beyond it. |
Date range |
366 days in total | Order search and sales summary. Both days are included, so the end date is at most 365 days after the start date. |
Email search window |
90 days in total | Both days included. Needs commerce.read.pii. |
SKUs per availability request |
50 | Each SKU at most 64 characters. |
Category tree |
500 nodes | Depth 1 to 3, default 2. |
Order lines, shipments, refunds |
100, 20, 50 | Per order. |
Variants, images |
100, 10 | Per product. |
Product description |
2000 characters | Plain text. |
URL length |
4096 bytes | REST only. Longer: 414. |
Request body (MCP) |
256 KiB | Larger: 413. Every tool except create_page and update_page takes at most 64 KiB of arguments (invalid_argument). |
Write body (REST) |
64 KiB; 256 KiB for pages | 65536 bytes; 262144 bytes for POST /pages and PATCH /pages/{id}. |
Page blocks and images |
60 blocks; 20 new image URLs | Per page write: at most 40 MB and 30 seconds of image downloading in all, 5 MB per image. |
Sales and price breaks |
10 per variant | At most 10 sales listed and 10 price breaks; break quantities 2 to 9999. |
List writes |
50 entries | set_labels and set_product_properties: at most 50 labels or properties, 50 values of 100 characters per property. |
Discount code |
3 to 32 characters | A-Z, 0-9, - and _. Name at most 120 characters; scope ids at most 200. |
Order note |
2000 characters | add_order_note. |
Rate limit per token |
60 per minute | Separate counters for REST and MCP. |
Rate limit per IP |
300 per minute | Counted before authentication. |
Write calls per token |
30 per minute | On top of the per-token limit, shared by MCP and REST. Over it: too_many_requests, the call does not run. Fixed. |
Token lifetime |
Default 180, maximum 365 days | No "never expires". |
Token lifetime with customer details |
At most 90 days | Tokens with commerce.read.pii created in the shop admin. |
Write token lifetime |
At most 30 days | Tokens with any commerce.write.* scope created in the shop admin. |
Image download (add_product_media) |
10 MB, 5 s connect, 15 s total | https URL of at most 2048 characters on a public host; redirects are not followed. |
Image size |
8000 pixels a side, 40 megapixels | JPEG, PNG, WebP, GIF or AVIF. |
Explanations: Rate limits, pagination and request limits.