---
title: "Download one result file (structure CIF/PDB, or embedding npz/parquet/manifest)."
method: GET
path: "/v1/jobs/{job_id}/artifacts/{path}"
tags: ["jobs"]
---

# Download one result file (structure CIF/PDB, or embedding npz/parquet/manifest).

`GET /v1/jobs/{job_id}/artifacts/{path}`

## Request

- Base URL: `https://api.japanfold.aiand.com`
- URL: `https://api.japanfold.aiand.com/v1/jobs/{job_id}/artifacts/{path}`
- Auth: one of:
  - none
  - HTTP bearer

With an API key, a file up to 16 MiB (every result file so far) comes back directly as 200. A larger one, or a request from a signed-in browser, answers 302 with a short-lived link to the object store, good for a few minutes and for that one file. Follow redirects and use `curl -fL -H "Authorization: Bearer $KEY" -o FILE URL`; without -L the saved file is a one-line text note naming the link. Send Accept: application/json to be handed the link instead of redirected to it, which is what a page in a browser needs: a cross-origin request redirected on to a third origin arrives at storage with no origin and is refused.

## Path parameters

- `job_id` string, required
- `path` string, required

## Response `200`

The file itself: up to 16 MiB for an API-key caller, or any file the store cannot link to.

## Other responses

- `302`: Redirect to a short-lived download link. The body is a one-line text/plain note with the same link.
- `401`: Unauthorized
- `404`: Not found
- `429`: Over a rate limit, or the queue is too busy to admit this in time

---

[API](https://skmtc.dev/aiand/apis/japanfold-api.md) · [All operations](https://skmtc.dev/aiand/apis/japanfold-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aiand/apis/japanfold-api/revisions/9f4be813b447?raw)
