Rate limits
Check how many requests and tasks your plan allows, and what to do when you reach a limit.
Limits by plan
To keep the API fast and available for everyone, Meshy limits each account in two ways:
- Requests per second: how many API requests you can send each second.
- Queue tasks: how many of your tasks can be
PENDINGorIN_PROGRESSat the same time.
The limits depend on your plan:
| Plan | Requests per second | Queue tasks | Priority |
|---|---|---|---|
| Pro | 20 | 10 | Default |
| Premium | 20 | 30 | Higher than Pro |
| Ultra | 20 | 100 | Highest |
| Studio | 20 | 20 | Higher than Pro |
| Enterprise | 100 | 100 by default, can be customized | Highest |
Priority isn't a limit. When the queue is busy, Meshy starts the tasks with a higher priority first.
What counts toward each limit
Every API request counts toward requests per second.
The queue tasks limit counts tasks, not requests. Every endpoint that creates a task checks this limit before it creates one, for example Text to 3D, Image to 3D, Multi-Image to 3D, Retexture, Remesh, Rigging, Animation, Text to Image, the 3D printing endpoints, and Creative Lab. Requests that don't create a task don't count toward it, for example Balance, Usage, and requests that retrieve, list, or stream tasks.
Both limits apply per account, so all your API keys and the Playground share them. Tasks you start in the Meshy web app also count toward your queue tasks.
When you reach a limit
When you go over a limit, the API returns 429 Too Many Requests. The message tells you which limit you reached:
- Too many requests per second: the message is
Rate limit exceeded. Wait the number of seconds in theRetry-Afterheader, then retry. - Too many queue tasks: the message starts with
NoMorePendingTasks. On an unlimited plan with no credits left, it starts withNoMoreConcurrentTasks. This429has noRetry-Afterheader. Wait for one of your tasks to finish, then create the next one.
Rate limit headers
API responses include these headers to help you pace your requests:
| Header | Description |
|---|---|
X-RateLimit-Limit | Requests allowed per second on your plan. |
X-RateLimit-Remaining | Requests left in the current second. |
X-RateLimit-Reset | Seconds until your budget is full again. |
Retry-After | Seconds to wait before your next request. Sent with a 429 for too many requests per second, and when you retrieve a task that is still PENDING or IN_PROGRESS. |
When Retry-After is present, wait that many seconds before you send the next request.