Skip to main content
Every run generates artifacts — video recordings, screenshots at each decision point, extracted data as JSON, and any downloaded files. Most are visible in the Run Details page, but you can also save them locally or pull them into another system.

From the UI

ArtifactHow to download
RecordingsRecording tab → right-click the video → Save video as…
ScreenshotsOverview tab → click a timeline item → right-click the image → Save image as…
Extracted dataOutput tab → select the JSON text and copy
Downloaded filesOutput tab → Workflow Run Downloaded Files → click any link
Generated codeCode tab → Copy button in the top right

From the API

Use the API when you need artifacts programmatically — for a pipeline, an archive, or integration with another tool.

List artifacts for a run

curl -X GET "https://api.skyvern.com/v1/runs/{run_id}/artifacts" \
  -H "x-api-key: YOUR_API_KEY"
Filter by type using the artifact_type parameter (repeatable):
curl -X GET "https://api.skyvern.com/v1/runs/{run_id}/artifacts?artifact_type=screenshot_llm&artifact_type=recording" \
  -H "x-api-key: YOUR_API_KEY"

Download an artifact

Each artifact in the response includes a signed_url — a temporary, pre-authenticated download link:
{
  "artifact_id": "art_abc123",
  "artifact_type": "screenshot_llm",
  "signed_url": "https://storage.example.com/screenshot.png?token=...",
  "created_at": "2025-01-15T10:30:00Z"
}
curl -o screenshot.png "SIGNED_URL_HERE"
Signed URLs expire after a short period. Always generate a fresh URL via the API rather than storing old ones.

Artifact types

ValueWhat it is
recordingFull browser session video
screenshot_llmScreenshots with numbered element annotations — what the AI analyzed
screenshot_actionScreenshots taken after each browser action
screenshot_finalFinal page state when the run ended
llm_promptComplete prompt sent to the LLM (goal, element tree, system instructions)
llm_requestRaw API request payload sent to the model provider
llm_responseRaw model response
llm_response_parsedParsed action list — what the AI decided to do
visible_elements_treeDOM tree of interactive elements the AI could see (JSON)
html_scrapeFull page HTML at the time of the step
skyvern_logFormatted execution logs
harHTTP Archive file — every network request the browser made
traceBrowser trace file for performance analysis
The annotated screenshots (screenshot_llm) and parsed action lists (llm_response_parsed) are the most useful for debugging. Annotated screenshots show which elements the AI identified, and the action list shows what it decided to do with them.

Run Details

Understand what each tab shows and how to debug failures

Using Artifacts (API)

Full API reference for artifact retrieval