> Documentation index: https://www.xekta.com/llms.txt

# Limits and timers

> The clocks an order runs on, the sizes a tool accepts, and what happens when an assistant calls too often.

## Timers

| What | Length |
| - | - |
| A shop answers a new order, or it is cancelled and nothing is charged | 10 minutes |
| The buyer decides about a missing item, or the order goes ahead without it | 10 minutes |
| Reporting a problem after pickup | 24 hours |
| Requesting a refund after pickup | 24 hours |
| The longest an order can stay open | 48 hours |
| Stock held at checkout | 300 seconds by default, 900 at most |

## Approval thresholds

| Total | Where the buyer approves |
| - | - |
| Over $200 | Always on the XEKTA approval page, signed in as themselves. |
| Over $300 in 24 hours, on Meta Muse and device-link connections | On the approval page. |

## Sizes

| Input | Limit |
| - | - |
| Items in one `cart_build` list | 50 |
| Quantity of one line | 99 |
| A search query | 200 characters |
| Search radius | 50 miles |
| Items on one menu page | 60 |
| A note on a restaurant item | 140 characters |
| Suggestions from `substitution_suggest` | 5 |
| A `feedback_submit` body | 4000 characters |

One cart holds one shop.

## Calling too often

An account, or the app it is using, that makes too many tool calls in a short time or in one day gets `RATE_LIMITED`. Nothing is changed by the refused call.

- `retry_after_seconds` says how long to wait. Wait that long, then retry the same call.
- Do not loop.
- Accounts with a verified phone number get a higher allowance.

## Following an order without hammering

[`user.orders.status`](https://www.xekta.com/docs/tools/user-orders-status.md) returns `poll_interval_seconds` and `keep_polling`. Check at that interval, stay silent unless something changed, and stop when `keep_polling` is false.
