Ironhide logoIRONHIDETest Your Agent

Exporting results

Nothing about your results is locked in. Every run is owned (data rights), and you can always see and export your own results: every report, every run in your history. This page covers the two export doors, the per-report download and the dataset export, and what each one contains.

Downloading a report#

Every completed evaluation produces a report with a stable report_id. The export endpoint returns it as a downloadable JSON attachment:

$ curl https://app.ironhideai.com/reports/rpt_abc123/export \
    -H "Authorization: Bearer $IRONHIDE_API_KEY" \
    -o ironhide-report-rpt_abc123.json

From the CLI, the same download is one flag:

# Save your latest report as JSON
$ ironhide report --download .

# Save a specific report from your history
$ ironhide reports
$ ironhide report rpt_abc123 --download ./reports/

If the path you pass is a directory, the file is written inside it as ironhide-report-<id>.json. This is the same artifact the report screen's download button pulls.

Two properties of the downloaded report to know about:

  • It is the masked, customer-facing report. An episode's answer key — its exact setup and per-episode grading — never appears in a download, exactly as it never appears on screen. For alias-only episodes those internals reach you only as aggregate feedback.
  • Trial gating applies. If the report was produced on a free run, the download is the same verdict-only report the screen shows — the headline verdict without the detailed breakdown, gated until a plan is chosen. See plans and pricing.

For raw JSON in the terminal instead of a file, ironhide report --json prints the full report, and ironhide reports --json prints your history rows.

Listing what you can export#

Your full report history is at GET /reports:

$ curl "https://app.ironhideai.com/reports?agent_id=agt_yourid&limit=20" \
    -H "Authorization: Bearer $IRONHIDE_API_KEY"

Each row carries the report_id, its verdict, and a timestamp — everything you need to pull any past report through the export endpoint above. Every run appears in your own history and is yours to see and export in full.

The dataset export#

The other export door is the labeled dataset itself: GET /dataset/export returns every reusable trajectory as JSONL, one labeled example per line, with the filename ironhide-trajectories.jsonl:

$ curl https://app.ironhideai.com/dataset/export \
    -H "Authorization: Bearer $IRONHIDE_OPERATOR_TOKEN" \
    -o ironhide-trajectories.jsonl

Three guarantees hold for every export this endpoint produces:

  • Only sellable rows. Preview and seeded / scaffold rows are excluded row by row by the is_sellable rail, and held-out episode internals are redacted — the exclusion happens at the line level, not the file level. See data rights for the rails that gate this.
  • Pseudonymous. Every agent_id is replaced with a random-salted, per-export pseudonym (for example anon_ab12cd34ef56). The salt is generated per export and never persisted, so an export cannot be joined back to any registration, and two exports cannot be joined to each other.
  • No registry data, ever. Names, contact emails, agent identifiers, and API keys live in a separate store that is never exported.

Deleting your registration#

DELETE /agents/{id} revokes the registration itself and deletes all stored secrets. What Ironhide keeps and reuses is the scrubbed environment your agent ran against, not your trajectory, and those shared-library environments were built from the run when it was recorded; the details are on the data rights page.