> ## Documentation Index
> Fetch the complete documentation index at: https://inference.docs.tensormesh.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Pagination And Retries

> Cross-cutting Control Plane guidance for pagination shapes, rate limits, and retry behavior.

Use this page when you need the shared behavior behind the generated Control Plane reference, not just one endpoint family.

## Pagination Shapes

The Control Plane surface currently exposes two pagination patterns:

* `page/size`: numbered pages such as tickets and some admin list routes
* `page-token` / `page-size`: cursor-style traversal such as billing transaction history

Examples:

```sh theme={null}
tm --output json tickets list --status TICKET_STATUS_OPEN --page 1 --size 20
tm --output json billing transactions list --page-size 25 --page-token "$NEXT_PAGE_TOKEN"
```

Do not assume every list route uses the same pagination contract. Check the route-specific page first.

## Retry And Rate-Limit Behavior

Control Plane callers should expect transient failures and explicit rate limiting:

* `429` means the server is rate limiting the request
* if the response includes `Retry-After`, wait for that server-provided delay before retrying
* `500`, `502`, `503`, and `504` can also be transient

The SDK and CLI only retry idempotent requests when retries are explicitly enabled. Non-idempotent writes should use explicit caller-side safeguards against duplicate effects.

## SDK And CLI Notes

* SDK transport honors `Retry-After` for idempotent requests and caps long delays
* CLI `--max-retries` applies only to idempotent requests
* for automation, prefer `tm --output json` and pass pagination values explicitly

Related docs:

* [Control Plane API](/tensormesh-api)
* [CLI Production Scripting](/cli/guides/production-scripting)
* [SDK Control Plane Guide](/sdk/guides/control-plane)
