Retrieving results
Every request is assigned a token. Use it to fetch the result later with a single GET — handy for async jobs, and for sync requests that timed out before the work finished.
When to use it
- In async mode, as a pull alternative to (or backup for) the webhook — poll until the result is ready.
- After a sync request times out. A slow sync call returns
504with thetoken, and the analysis keeps running in the background — retrieve it here once it's done.
GET/result/:token
Fetch a result
Path parameter
- Name
token- Type
- string
- Required
- Required
- Description
- The token identifying the original request. Requests are scoped to your project, so a token from another project returns
404.
Where the token comes from
- Async requests return it in the response body (
token). - Sync requests return it in the
X-Result-Tokenresponse header, and in the body of a504timeout.
GET/result/:token
curl https://urlpipe.dev/result/YOUR_TOKEN \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch("https://urlpipe.dev/result/YOUR_TOKEN", {
headers: { "Authorization": "Bearer YOUR_API_KEY" },
})import requests
res = requests.get(
"https://urlpipe.dev/result/YOUR_TOKEN",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)Responses
The status code tells you whether the result is ready, still running, failed, or expired. On 200 the body is exactly what the original endpoint returns.
Status
When
Body
200 OKThe result is ready.
The result itself, in the operation's format (text or JSON) — identical to the sync response.
202 AcceptedStill being generated.
{ "status": "processing", "token": "…" } — poll again shortly.
422 Unprocessable EntityThe analysis ran but failed.
{ "error": "<message>" } — the same failure you'd get synchronously.
404 Not FoundNo result for this token under your project.
{ "error": "not_found" }
410 GoneThe result is older than the 30-day window.
{ "error": "stale" } — run a new analysis.
401 UnauthorizedMissing or invalid API key.
—
Poll on
202: wait a second or two between calls. Most analyses finish within seconds — see typical times on Async & sync modes.Retention & staleness
Results are retrievable for up to 30 days — the maximum cache window. After that, GET /result/:token returns 410 Gone with { "error": "stale" }, and you must run a new analysis to get a fresh result.
410 Gone
{
"error": "stale",
"message": "This result is older than the 30-day retention window. Run a new analysis."
}