---
title: "Get interactive artifact contents"
method: GET
path: "/sessions/agents/{sessionId}/artifacts/{artifactId}/content"
tags: ["Research Agent"]
---

# Get interactive artifact contents

`GET /sessions/agents/{sessionId}/artifacts/{artifactId}/content`

Materialize the contents of an interactive artifact listed under `deliveredOutputs` on the list-artifacts endpoint.

The response is structured JSON discriminated on `kind`: tables carry `columns` and `rows`; prose and figures carry supported content (cleaned text, the original markdown, and resolved citations); presentations carry slides. The default `format` is `json` (omitting the parameter is equivalent to `?format=json`). Tables can also be downloaded with `?format=csv` or `?format=xlsx`, and prose with `?format=md`. File responses are served with `Content-Disposition: attachment`, not as JSON. Unsupported kind/format combinations return `400 download_not_available`.

### Example

```bash
# Structured JSON
curl https://elicit.com/api/v2/sessions/agents/{sessionId}/artifacts/{artifactId}/content \
  -H "Authorization: Bearer elk_live_your_key_here"

# Table as CSV
curl "https://elicit.com/api/v2/sessions/agents/{sessionId}/artifacts/{artifactId}/content?format=csv" \
  -H "Authorization: Bearer elk_live_your_key_here" \
  -O -J

# Prose as portable Markdown
curl "https://elicit.com/api/v2/sessions/agents/{sessionId}/artifacts/{artifactId}/content?format=md" \
  -H "Authorization: Bearer elk_live_your_key_here" \
  -O -J
```

## Path parameters

- `sessionId` string, uuid, required
- `artifactId` string, required

## Query parameters

- `format` 'json' | 'csv' | 'xlsx' | 'md' — Response format: omit or "json" for the JSON body; "csv"/"xlsx" to download a table as a file, or "md" to download prose as Markdown.

## Response `200`

Contents of the interactive artifact: structured JSON, a CSV/XLSX file for a table, or a Markdown file for prose.

- union
  - object
    - `artifactId` string, required — Opaque identifier for the interactive artifact, echoing the request. Can also be re-requested with ?format=<fmt> to download as a file (tables: csv/xlsx, prose: md).
    - `title` string, required — Human-readable title of the artifact.
    - `caption` string, nullable, required — Optional caption describing the artifact.
    - `url` string, required — URL to view and continue the session in the Elicit web interface.
    - `kind` 'table', required
    - `columns` string[], required — Ordered column keys for the table, in first-seen order across the rows.
    - `rows` object[], required — Table rows, each a mapping from column key to cell.
  - object
    - `artifactId` string, required — Opaque identifier for the interactive artifact, echoing the request. Can also be re-requested with ?format=<fmt> to download as a file (tables: csv/xlsx, prose: md).
    - `title` string, required — Human-readable title of the artifact.
    - `caption` string, nullable, required — Optional caption describing the artifact.
    - `url` string, required — URL to view and continue the session in the Elicit web interface.
    - `kind` 'prose', required
    - `content` object, required
      - `text` string, required — Human-readable content with inline citation markup removed.
      - `markdown` string, required — The original markdown content, including inline citation markup.
      - `citations` object[], required — Citations backing this content, resolved to the same shape as message citations.
        - `citationId` string, required — Identifier for this citation within the agent message.
        - `reference` string, nullable, required — The inline citation this entry resolves. It matches, character for character, a single reference token inside the `<citations>…</citations>` markup in the message text (one entry per token, after comma-separated tokens are split). Use it to map inline references in the text to this citation; use the `source` field to identify the underlying source. `null` for citations with no inline reference (e.g. legacy quotes-array or artifact-content citations).
        - `quote` string, required — The passage from the source that supports the message.
        - `source` object, required
          - `title` string, nullable, required — Title of the cited work.
          - `authors` string[], required — Authors of the cited work, in display order.
          - `year` integer, nullable, required — Publication year.
          - `doi` string, nullable, required — Digital Object Identifier (DOI), when available.
          - `url` string, nullable, required — Best available URL for the cited work.
          - `venue` string, nullable, required — Journal, conference, repository, or other publication venue.
  - object
    - `artifactId` string, required — Opaque identifier for the interactive artifact, echoing the request. Can also be re-requested with ?format=<fmt> to download as a file (tables: csv/xlsx, prose: md).
    - `title` string, required — Human-readable title of the artifact.
    - `caption` string, nullable, required — Optional caption describing the artifact.
    - `url` string, required — URL to view and continue the session in the Elicit web interface.
    - `kind` 'presentation', required
    - `slides` object[], required — Ordered slides, each with a title and supported content.
      - `title` string, required — Slide title.
      - `content` object, required
        - `text` string, required — Human-readable content with inline citation markup removed.
        - `markdown` string, required — The original markdown content, including inline citation markup.
        - `citations` object[], required — Citations backing this content, resolved to the same shape as message citations.
          - `citationId` string, required — Identifier for this citation within the agent message.
          - `reference` string, nullable, required — The inline citation this entry resolves. It matches, character for character, a single reference token inside the `<citations>…</citations>` markup in the message text (one entry per token, after comma-separated tokens are split). Use it to map inline references in the text to this citation; use the `source` field to identify the underlying source. `null` for citations with no inline reference (e.g. legacy quotes-array or artifact-content citations).
          - `quote` string, required — The passage from the source that supports the message.
          - `source` object, required
            - `title` string, nullable, required — Title of the cited work.
            - `authors` string[], required — Authors of the cited work, in display order.
            - `year` integer, nullable, required — Publication year.
            - `doi` string, nullable, required — Digital Object Identifier (DOI), when available.
            - `url` string, nullable, required — Best available URL for the cited work.
            - `venue` string, nullable, required — Journal, conference, repository, or other publication venue.
      - `speakerNotes` string, nullable, required — Speaker notes, when present.
  - object
    - `artifactId` string, required — Opaque identifier for the interactive artifact, echoing the request. Can also be re-requested with ?format=<fmt> to download as a file (tables: csv/xlsx, prose: md).
    - `title` string, required — Human-readable title of the artifact.
    - `caption` string, nullable, required — Optional caption describing the artifact.
    - `url` string, required — URL to view and continue the session in the Elicit web interface.
    - `kind` 'figure', required
    - `description` object, required
      - `text` string, required — Human-readable content with inline citation markup removed.
      - `markdown` string, required — The original markdown content, including inline citation markup.
      - `citations` object[], required — Citations backing this content, resolved to the same shape as message citations.
        - `citationId` string, required — Identifier for this citation within the agent message.
        - `reference` string, nullable, required — The inline citation this entry resolves. It matches, character for character, a single reference token inside the `<citations>…</citations>` markup in the message text (one entry per token, after comma-separated tokens are split). Use it to map inline references in the text to this citation; use the `source` field to identify the underlying source. `null` for citations with no inline reference (e.g. legacy quotes-array or artifact-content citations).
        - `quote` string, required — The passage from the source that supports the message.
        - `source` object, required
          - `title` string, nullable, required — Title of the cited work.
          - `authors` string[], required — Authors of the cited work, in display order.
          - `year` integer, nullable, required — Publication year.
          - `doi` string, nullable, required — Digital Object Identifier (DOI), when available.
          - `url` string, nullable, required — Best available URL for the cited work.
          - `venue` string, nullable, required — Journal, conference, repository, or other publication venue.
    - `renderer` string, nullable, required — Figure renderer, when known.
    - `spec` string, nullable, required — Figure spec, when known.

## Other responses

- `400` — The requested file format is not available for this artifact kind. Tables support CSV/XLSX and prose supports Markdown.
- `401` — Authentication failed. The API key is missing, invalid, revoked, or expired.
- `403` — API access is not available on your current plan. Upgrade to Pro or above to use the API.
- `404` — Research Agent API early access is not enabled, the session was not found, or the artifact is not in the session's current deliveredOutputs list.
- `429` — Rate limit exceeded. More than 100 requests per minute were received from your IP address; further requests are blocked for 5 minutes.
- `500` — An unexpected error occurred. Retry after a short delay.

---

[API](https://skmtc.dev/elicit/apis/elicit-api.md) · [All operations](https://skmtc.dev/elicit/apis/elicit-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/elicit/elicit-api/revisions/2b42624536e5/schema)
