---
title: "Download a completed async result"
method: GET
path: "/jobs/{jobId}/results"
tags: ["Jobs"]
---

# Download a completed async result

`GET /jobs/{jobId}/results`

## Request

- Base URL: `https://api.flashdata.dev/v2`
- URL: `https://api.flashdata.dev/v2/jobs/{jobId}/results`
- Auth: one of:
  - API key in cookie `__Host-fd_session`
  - API key in header `X-API-Key`

Authenticates access and redirects to a short-lived private R2 URL. The management service never proxies the result body. Clients that follow the redirect receive the JSON result directly from R2. Stored results expire 24 hours after completion.

## Path parameters

- `jobId` string, required

## Response `200`

Completed result returned by R2 after the client follows the redirect

- object

## Other responses

- `302`: Redirect to the completed JSON result in private R2 storage
- `401`: Authentication required or invalid
- `404`: Resource not found or not owned by the caller
- `409`: Resource state or idempotency conflict
- `410`: Result expired
- `422`: Request validation failed
- `503`: A required dependency or catalog is temporarily unavailable

---

[API](https://skmtc.dev/flashdata/apis/flashdata-customer-api.md) · [All operations](https://skmtc.dev/flashdata/apis/flashdata-customer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flashdata/apis/flashdata-customer-api/revisions/109179fe9313?raw)
