Get backtest artifact (auto-uses Parquet when available)
get_backtest_artifactFor a live or scheduled deployment, use get_deployment_logs for runtime logs and list_deployment_artifacts/query_deployment_artifact for decisions, preserving the discovered deploymentId and runId. A deploymentId or deployment runId is not a backtestId. Request a short-lived download URL for a specific BACKTEST non-log artifact (tearsheet, trades, indicators, stats, agent_detail, completion JSON, etc.). Runtime logs are not artifacts; use get_backtest_logs for backtest runtime errors, warnings, tracebacks, order/fill log lines, startup lines, and strategy log output. Tool availability is already supplied by tools/list; never probe it with all-zero ids or dummy labels. For Marketplace live performance, use marketplace_strategies live/performance fields, not backtest artifacts. Missing live windows stay unavailable and do not require an artifact call. backtestId must be an actual backtest run id from list_backtests or an explicit user-provided backtest id; never pass a strategy id, aiStrategyId, revisionId, browser URL revisionId, conversation id, or placeholder such as . If you only have strategy/revision context, call list_backtests(includeArtifacts=true) first and select the relevant completed run. Once selected, keep that same backtestId for all artifacts/log calls in the answer unless the user explicitly asked to compare multiple runs or analyze a different named run. Do not mix stats/trades/agent_detail/log evidence from different backtest ids. Artifact absence is a normal result, not a tool crash: if a file has not been produced yet (common while a backtest is still running) the response returns structuredContent.unavailable=true with the backtest status and available artifact labels. IMPORTANT: When Parquet versions exist, this tool automatically serves them instead of CSV for much faster performance. The response will tell you which format was actually served. Report the actual format (Parquet or CSV) to the user. ⚠️ CRITICAL FOR DATA FILES: This tool returns ONLY the schema (column names, types, nullCount, sample rows) - NOT the full data! The csvSchema tells you what columns exist, their types, and how many NULL values each has (nullCount). Check nullCount to identify columns that may have NULLs for certain row types. Sample rows show diverse bounded examples across different values (not just first N rows). Long preview values are shortened and the preview is not the full data. For JSON artifacts, this tool inlines parsed JSON as structuredContent.jsonContent when the file is reasonably small. To actually ANALYZE the data, you MUST follow up with query_csv to run a SQL query. Calling get_backtest_artifact alone does NOT count as 'analyzing' the CSV - you have only seen metadata/previews, not enough row-level evidence. Do not patch strategy code from list_backtests.errorDetails, backtest_status text, or this artifact preview alone when query_csv is visible. For debugging/diagnostics, call get_backtest_logs. This tool intentionally rejects runtime log labels so diagnostics do not lose context through filtered log CSV artifacts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | User-facing artifact label from list_backtests/includeArtifacts or get_backtest_artifact guidance, e.g. stats.csv, trades.csv, agent_detail.parquet, tearsheet.html, completion.json. Runtime logs are not artifacts; use get_backtest_logs. | |
| backtestId | Yes | Actual backtest run UUID. Use the id returned by list_backtests or an explicit user-provided backtest id. Do not use a strategy id, aiStrategyId, revisionId, browser URL revisionId, conversation id, or a placeholder such as <unknown>. |