Base URL
Recoveries (interrupted response recovery) addresses a common situation: you send a non-streaming request (stream=false), and the upstream model actually generates the result successfully, but the connection is interrupted, so your client never receives the response.
In this case, the request is usually still completed by the upstream provider and billed. To avoid wasting resources and money on duplicate requests, Poixe temporarily stores the key data and response of that request, so you can try to recover the result after the request fails.
https://api.poixe.com/v1/recoveriesNote: The Recoveries endpoints are free of charge. A stored record is created only when a request is interrupted.
Use cases
When a non-streaming request appears to fail or time out on the client, but you suspect the upstream provider may have finished processing it, try Recoveries first:- The client network drops or fluctuates, interrupting the connection
- A CDN or proxy layer forces a timeout or closes the connection
- A brief system interface fluctuation causes the connection to be closed
- The request takes a long time, and the client times out before the upstream provider finishes
Walkthrough: how to recover after an interruption (core steps)
1
Send a non-streaming request (stream=false)
For example, call an endpoint such as Chat Completions or Responses with
stream=false (non-streaming response).2
The connection is interrupted: the client shows a failure, but the upstream may have finished
Common causes include a dropped client network, a CDN-enforced timeout, or a brief system interface fluctuation that closes the connection.
Note: A non-streaming request may already have been processed and billed normally by the upstream provider, with only the result failing to reach the client.
We recommend trying to recover it first and then deciding whether to retry, to avoid being charged twice.
3
The system automatically stores the result of this request
Poixe stores the request and response as a recovery record for later retrieval.
Note: This step is completed automatically by the system. You do not need to do anything extra.
4
Get the request_id (choose any one)
You can get the
request_id in any of the following ways:- Option A: Console. Check the corresponding request log on the Logs page and get the
request_iddirectly - Option B: Call List stored responses to get the
request_idfrom the list - Option C: Call lookup, submit the original request JSON, and receive candidate records along with the
request_id
5
Recover the full content by request_id
Use
Get stored response details:
GET /v1/recoveries/{request_id} to retrieve the original request and the complete response body.6
Optional: clean up stored records
After recovery, you can choose to:
- Delete a single record: Delete a stored response
- Delete all records: Delete all stored responses (supports a
dry_runpreview)
Endpoint overview (recommended order)
List stored responses
GET /v1/recoveries
Get details (recover a response)
GET /v1/recoveries/
lookup (without a request_id)
POST /v1/recoveries/lookup
Delete a single stored response
DELETE /v1/recoveries/
Delete all stored responses (supports dry_run)
DELETE /v1/recoveries?all=true
Retention period and cleanup policy
Recoveries records are kept for 3 days by default and are automatically deleted after the retention period expires. If you want to clean them up immediately, you can call a delete endpoint (single or all).Data security and compliance
Poixe follows strict data and security standards. Recoveries data is used only to help you recover the responses of interrupted requests, and is protected by authentication (only the current user can access their own records). We do not use, process, or analyze this data in any way, and it is not used for any purpose. The data is stored temporarily according to the retention policy and is automatically cleaned up when it expires.Recommendation for long-running requests: use a direct endpoint to avoid CDN-enforced timeouts
The main endpoint is forwarded through a CDN, which has a fixed connection timeout policy. For requests that may take a long time (for example, long outputs, complex tool chains, or extended reasoning), the CDN may close the connection before the response is returned. To avoid such interruptions, you can replace the main endpoint with a direct endpoint (no CDN). Poixe provides two direct endpoints (dc8 / dc15) that you can use directly as alternative addresses for the main endpoint, so they are not affected by CDN-enforced timeouts. If you have higher availability requirements, we recommend configuring both dc8 and dc15 in your client and switching automatically when a request fails, to improve stability.For background and guidance on choosing, see: Base URL