Docs

Reliability and trust

What happens when a request fails, what AnyPath retries, how your data and credentials are handled, and what is not promised.

On this page
  1. How a request is routed
  2. Status and availability
  3. Where the time goes
  4. What is retried for you
  5. What is never retried
  6. What you are charged for
  7. Data and credentials
  8. Reporting a problem
  9. What AnyPath does not promise

Read this before sending production traffic. It states what you can rely on and where the limits are.

How a request is routed

Key settingWhat AnyPath does
Intelligent routing (default)Picks an eligible, healthy route for the model you asked for, from any provider that serves it
Specified providerStays inside one provider, and still chooses among that provider’s routes

Specified provider fixes the provider, not one supplier account. A route is eligible only if its last connection check passed, its supplier is in good standing, and the live price is at or above the supplier’s protection floor.

Status and availability

Public pages show measured numbers and say so when there are too few requests to judge. Use these together:

  • Live supply and price for supply, success rate, and latency per provider
  • GET /v1/models for the models your key can use right now
  • Console Requests for the outcome of each request

Where the time goes

Every successful response carries a Server-Timing header, in milliseconds:

EntryMeaning
gw-totalFrom arrival at AnyPath until AnyPath starts answering you
gw-upstreamThe part of that spent waiting for the provider: until its first response for a stream, until its complete answer otherwise

The difference between the two is the time AnyPath adds: checking your key, choosing a route, reserving and settling balance. Use it to tell a slow provider from a slow gateway.

What is retried for you

AnyPath retries only when it is certain the first attempt produced nothing: a complete rate-limit rejection (429) from the provider, before any output. The request must also be a plain text request that is safe to send again.

  • By default there are up to four attempts in total, including the first.
  • A retry goes somewhere else first: another key of the same supplier, then another supplier, then, under intelligent routing, another provider serving the same model. Under specified provider it stays with that provider.
  • Each retry is checked again for model access, eligibility, and balance, and never raises the amount reserved for the request.
  • All attempts share the original deadline: 3,600 seconds without streaming, 600 seconds with streaming.

What is never retried

Timeouts, connection failures, 5xx responses, authorization or quota failures, safety refusals, and any response that has already started are returned to you as they are. So are requests that carry continuation IDs, files, cache references, signed reasoning blocks, tools, or background execution.

An error does not prove that the provider did nothing. Do not blindly resend a failed generation request; set an explicit retry budget in your client.

What you are charged for

  • Only successful requests are charged. A failed attempt costs you nothing and pays the supplier nothing.
  • The charge is the provider-reported usage at the price in effect when the request started. It never exceeds the amount reserved.
  • If you disconnect during a stream, generation continues at the provider. AnyPath reads the stream to its end and charges for what was actually generated.
  • If a stream ends without usable usage figures — a provider error, the 600-second limit, or a final event with no usage — the reservation is returned and you are not charged.

Data and credentials

  • An API key is shown once, when you create it.
  • Supplier credentials are stored encrypted and are never returned by any API.
  • Callers never see which supplier served a request, and suppliers never see caller prompts or responses through AnyPath.
  • AnyPath replaces the authentication header and may add tracing metadata. It does not change the meaning of your request body.

Reporting a problem

Include the request ID, the API key name (never the secret), the model and endpoint, and the approximate time with its timezone.

What AnyPath does not promise

  • That every model is available to every key at all times.
  • That consecutive requests reach the same supplier account.
  • Asynchronous, batch, or polling endpoints.
  • A customer-chosen upstream address.
  • Data residency in a chosen region. Region exclusions are operating controls, not a per-request guarantee.