Skip to main content

Limits

These are the values on proxium.tech today. A limit of 0 means no limit.

The limits you meet first​

LimitValue
Request body32 MiB
x-proxium-timeout-msAt most 120000 ms
Models in one plan4
Retry-After that Proxium waitsAt most 30 s
App limitsNone until you set them

Size​

LimitValueAt the limit
Request body32 MiB413, plain-text body
Vendor answer64 MiBThe call fails. Proxium tries the next model
Stored copy of an answer32,768 charactersProxium cuts the stored copy. Your app gets the full answer
Model id of a media call200 characters400 bad_model

A media model id can hold only A-Z, a-z, 0-9, ., _, - and :.

Time​

LimitValueAt the limit
x-proxium-timeout-msAt most 120000 msA larger value is lowered to the maximum
All calls of one request, with the headerThe header value503 upstream_failed
All calls of one request, without the headerNo limit
One call, not streamed120 sTimeout. Proxium tries the next model
Connect to a vendor10 sThe call fails. Proxium tries the next model
Silence in a stream300 sProxium ends the stream
  • Proxium ignores an x-proxium-timeout-ms of 0, a negative value, or text.
  • When the header time ends, the message of the 503 starts with client deadline exceeded.
  • For a stream, the header time ends at the first piece. After that, only the silence limit applies. A stream has no limit on its total time.
  • The silence limit also runs while the vendor prepares its first piece.

Retries and failover​

LimitValueAt the limit
Models in one plan4 by default, 1 to 4503 upstream_failed
Extra calls to one model1 by default, 0 to 3Proxium tries the next model
First wait before an extra call200 ms by default, 0 to 5000 ms. It doubles for each next call—
Retry-After that Proxium waits30000 ms at most by default, 0 to 30000 msProxium waits, then calls again
Failures that open a breaker5 in 10 minutesProxium skips the vendor
Pause after normal failures30 sOne trial call
Pause after a rejected key or used quota30 minutesOne trial call
Trial calls that close a breaker2 good answersThe vendor is used again
Failed calls in a row that retire a model3 by default, 1 to 100The project's calls skip the model
Time a retired model stays retired60 minutes by default, 1 to 10080The model is back
Time a vendor stays retired after "no credits" or "key rejected" on your own key60 minutes by default, 1 to 10080The vendor is back, and its first call is the test call
Failed calls in a row across its models that retire a vendor5 by default, 1 to 100The project's calls skip every model of the vendor
Time a vendor stays retired after failed calls60 minutes by default, 1 to 10080The vendor is back
  • An extra call to a model happens only after a 5xx, 408 or "warming" answer. After a 429, by default, the next call goes to a model at another vendor of the plan. With no other vendor, the same model gets one more call.
  • A 429 never opens a breaker, and never counts toward a retirement.
  • Your project sets each "by default" value of this table in its failover policy, on Routing › When a call fails. See Set your failover policy.
  • Proxium does not skip a fallback model for its price. A fallback can cost more than your first model.

Spend and rate​

LimitValueAt the limit
App: Calls per hourYou set it. Default 0429 source_capped
App: Dollars per dayYou set it. Default 0429 source_capped
Key: calls per hourYou set it on Keys. Default 0429 tenant_capped
Key: requests and tokens per minuteYou set them on Keys. Default 0429 tenant_capped
Key: dollars per dayYou set it on Keys. Default 0429 tenant_capped
Project: monthly capNone during the open beta
  • Each 429 carries retry-after: 60.
  • Calls per hour: the last 60 minutes, rolling.
  • Dollars per day: the last 24 hours, rolling, in hourly buckets.
  • Requests and tokens per minute: the last 60 seconds, rolling.
  • You set the app limits on Overview › Per-app burn, and the key limits on Keys. See Set budgets and limits.

Names and lists​

LimitValueAt the limit
Key name, on Keys60 charactersThe name is dropped. The key has no name
Endpoint name60 characters400 bad_name
Vendor name40 characters400 bad_name
Models of one vendor200400 too_many_models

A vendor name holds only a-z, 0-9 and -, with no - at the start or the end.

How soon a change applies​

ChangeApplies
Routing, app limits, the cache priceAt once on one server, within 30 s on all
The spend that the monthly cap readsEvery 30 s
The model list of each vendorEvery 21600 s