Skip to main content
The Widgetic API implements rate limits and usage quotas to ensure fair usage and service stability.

Rate Limits

Requests are counted over a 15-minute window. A recognized API key is counted on its own, so one customer’s traffic never uses up another’s. Anything else is counted by IP address. The allowance that applies to a call is in the RateLimit-Limit header of its response, so read it there instead of hard-coding a number. The partner ceiling is there to stop a runaway loop, not to meter a platform that serves hundreds of thousands of its own users.

Rate Limit Headers

Responses that were counted include rate limit information:
The older X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers are sent as well, for clients that still read them. The first two carry the same numbers. X-RateLimit-Reset does not: it is the time the window ends, in Unix seconds, not a number of seconds to wait. Read the RateLimit-* headers.

When Rate Limited

If you exceed a limit, you’ll receive a 429 Too Many Requests response with a Retry-After header. Retry-After and error.retryAfter are the same number, in whole seconds:
error.code tells you which limit it was. See Rate Limits for every code and for how to retry.

Endpoint-Specific Limits

Some operations have a limit of their own, on top of the allowance on your key. Each one is counted for each person, across all of their keys and sessions: a partner key and the same person’s dashboard session count together. A refusal has the code RATE_LIMIT_USER_EXCEEDED. Each gateway server counts these on its own, so when several servers answer, the number let through can be higher than the figure shown. AI generations are also held to a usage budget per hour and per day, and to a number of generations running at once. A refusal says which (COST_LIMIT_EXCEEDED or CONCURRENCY_LIMIT_EXCEEDED).

Usage Quotas

Plan Allowances

One credit pays for one AI generation. See Credits & Billing for what spends credits. Largest single file. The same on every plan: a file can be up to 250 MB, whether it is uploaded from the app (a resumable upload) or saved to the media library by an AI assistant. A file sent in one API request (POST /uploads) can be up to 10 MB. GET /uploads/limits returns both limits (multipart_max_bytes for one request, tus_max_bytes for a resumable upload).

Checking Your Credits

Read the credit balance of the account behind your key. Credits left are balance minus reservedBalance:
See Credits & Billing for how to find your account id.

Best Practices

Implement Backoff

Batch Operations

Use batch endpoints to reduce API calls:

Cache Responses

Cache read-only data to reduce API usage, and let it expire so that a change you make is picked up:

Requesting Higher Limits

If you need higher limits, contact support@widgetic.com with your use case and the volume you expect.