---
title: "Get Run Artifact"
method: GET
path: "/api/agent-chat/playground/artifacts/{short_id}"
tags: ["Agent Chat Playground"]
---

# Get Run Artifact

`GET /api/agent-chat/playground/artifacts/{short_id}`

Auth-gated mirror of ``GET /api/agent-chat/artifacts/:short_id``.

Supports the same ``?offset=&limit=`` pagination as the prod endpoint —
the shared ArtifactViewer pages large tabular artifacts (e.g. 20k people
rows) and POSTs the page through this URL.

Reads from the parquet/markdown file referenced by ``artifact.path``
when present (post-898f9be8 file-based artifacts) and falls back to
the legacy ``data`` JSONB for rows written before the refactor. Without
this dispatch, every file-backed artifact in the playground viewer
came back with ``data=[]`` and rendered as "No data".

We don't try to enforce session→artifact ownership here because the
short_id is already an unguessable random string and the call is gated
behind the playground auth dependency. Anyone with both the URL secret
AND a valid Explee token can read; that's the whole privacy model for
this surface.

## Path parameters

- `short_id` string, required

## Query parameters

- `offset` integer, nullable
- `limit` integer, nullable

## Cookies

- `ex_access` string, nullable
- `ex_org` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

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