Artifacts
Every run produces a set of artifacts: the polished demo, the raw recording, the plan the agent executed, and an event log. Artifacts are listed per run and downloaded over an authenticated URL.
What a run produces
Every run ships these artifacts:
demo.mp4: The polished demo video. This is the artifact you publish.raw.mp4: The unedited screen recording before post-processing. Useful when you want to re-render with different visual options without re-running the workflow.plan.json: The plan the agent executed: normalized goal, success criteria, per-iteration actions, and the action history. Good for understanding why a run produced the demo it did.events.jsonl: Structured event stream emitted during the run. One JSON object per line. Useful for debugging or building dashboards.trace.zip: Full browser trace bundle. Open it with Playwright’s trace viewer when you need to dig into a failed run.
Opt-in artifacts:
demo.gif: Rendered from the finaldemo.mp4when the run was created withoptions.artifacts.gif=true.
Endpoints
GET /v1/agent/runs/:id/artifacts: List artifacts produced by a run.GET /v1/downloads/:artifactId: Download a specific artifact.
List artifacts for a run
curl https://api.slideshot.ai/v1/agent/runs/$RUN_ID/artifacts \
-H "x-api-key: $SLIDESHOT_API_KEY"
{
"data": [
{
"id": "aaaa1111-bbbb-2222-cccc-333344445555",
"name": "demo.mp4",
"content_type": "video/mp4",
"size_bytes": 5829412,
"download_url": "https://api.slideshot.ai/v1/downloads/aaaa1111-bbbb-2222-cccc-333344445555",
"created_at": "2026-05-11T12:03:21Z"
},
{
"id": "bbbb2222-cccc-3333-dddd-444455556666",
"name": "plan.json",
"content_type": "application/json",
"size_bytes": 41229,
"download_url": "https://api.slideshot.ai/v1/downloads/bbbb2222-cccc-3333-dddd-444455556666",
"created_at": "2026-05-11T12:03:21Z"
}
]
}
Each entry includes the artifact name, a stable download URL, and content metadata. Names match the filenames listed above.
Download an artifact
curl -L -o demo.mp4 \
"https://api.slideshot.ai/v1/downloads/$ARTIFACT_ID" \
-H "x-api-key: $SLIDESHOT_API_KEY"
The endpoint authorizes the request with the same API key (or session) that owns the run, then either streams the bytes directly or redirects to a short-lived presigned URL. Use -L (or your client’s redirect-follow flag) so the download follows the redirect.
The CLI wraps the same flow:
slideshot runs download $RUN_ID --artifact demo.mp4 --dir ./artifacts
You can pass --artifact multiple times to download several files at once.
Authorization
Downloads require the same auth as the parent run:
- The API key that created the run can download every artifact.
- A user signed into the Slideshot dashboard can download every artifact for their own runs.
Cross-key access is rejected: an artifact ID by itself is not enough to download a file.
Naming and retention
- Artifact names are stable:
demo.mp4,raw.mp4,plan.json,events.jsonl,trace.zip, anddemo.gif(when applicable). - Download URLs returned by the list endpoint are stable and continue to work as long as the run exists. Presigned redirects expire quickly (under five minutes), so refetch the list rather than caching the redirect target.
Related
- Runs: the lifecycle that produces these artifacts.
- Customize video: options that change what ends up in
demo.mp4anddemo.gif. - API overview: error model and authentication.