---
title: Artifacts & Storage
description: 'List a finished job''s output files and fetch each 5-minute download_url — PDB, SDF, CSV, TXT, ZIP or JSON; the route returns 409 until the job completes.'
tags:
  - rest
  - artifacts
  - storage
  - download
---
Artifacts & Storage is how you retrieve the files a job produces — PDB structures, SDF molecules, CSV reports — once it completes. Reach for it after a job you submitted through the [Jobs API](/docs/api/rest-jobs) finishes and you need its outputs. It's the retrieval half of the job lifecycle that the Jobs API starts.

  beginner
  8 min
  [authentication](/docs/api/authentication), [rest-jobs](/docs/api/rest-jobs)

## Artifacts & Storage

A finished job's outputs (PDB structures, SDF molecules, CSV reports) are stored with the job. `GET /api/v1/jobs/:jobId` ([reference](/docs/api/reference/get-api-v1-jobs-job-id)) returns the finished record, including its output artifact references.

> **Try it live:** Open the [Interactive API Reference](/docs/api/reference) to test these endpoints directly from your browser.

---

## Downloading Outputs

`GET /api/v1/jobs/:jobId/artifacts` ([reference](/docs/api/reference/get-v1-jobs-jobid-artifacts)) lists a finished job's output files. Each entry has a `download_url` that works for 5 minutes. Fetch it with a plain `GET` and no auth header:

```bash
curl "https://www.ivybiosciences.com/api/v1/jobs/$JOB_ID/artifacts?types=pdb,csv" \
  -H "Authorization: Bearer ivy_your_key"

# then, for each artifact
curl -o structure.pdb "$DOWNLOAD_URL"
```

The route needs an API key or a signed-in session that can read the job. It returns `409` until the job has completed. A job you can't read returns `404`, the same as a job that doesn't exist. When the links expire, call the route again for new ones.

The [CLI](/docs/cli) does the same in one step:

```bash
ivybloom jobs download job_abc123
```

Files your chat's code sandbox exports have their own download operation: `GET /api/harness/sandbox/:chatId/export/:assetId/download` ([reference](/docs/api/reference/get-harness-sandbox-chatid-export-assetid-download)) returns a short-lived signed link.

---

## Artifact Types

The download route lists these types; pass any subset as `types`:

| Type | Extension | Description |
|------|-----------|-------------|
| `pdb` | `.pdb` | Protein Data Bank structure file |
| `sdf` | `.sdf` | Structure-Data File (molecules) |
| `csv` | `.csv` | Tabular results |
| `txt` | `.txt`, `.log` | Text output and logs |
| `zip` | `.zip` | Bundled outputs |
| `json` | `.json` | Structured data |

---

## Without a key

The operations on this page need an API key or a session. A caller with no key starts with the keyless orchestrate request in [Guest curl](/docs/api#guest-curl); guest behaviour and limits are stated once, in [llms.txt](https://www.ivybiosciences.com/llms.txt).

## Read next

- [Jobs API](/docs/api/rest-jobs) — job submission and status
- [Guest curl](/docs/api#guest-curl) — the keyless first call
- [SDK Artifacts](/docs/api/sdk-artifacts) — TypeScript artifact helper
