Export a file/dir to a download URL
Export a file or directory from a node to a download URL: the way to get results (an optimized model, a checkpoint, generated data) OUT of a node when your sandbox is HTTPS-only. Returns {artifact_id, state: "ready", size_bytes, sha256, download: {url, expires_at}}: fetch the url with plain curl before it expires (~7 days; the stored object itself lives ~30 days) and verify the sha256. The url points at the object store's own hostname (currently fly.storage.tigris.dev), NOT the API's - a sandbox egress allowlist must permit that host too, or the fetch 403s at your own proxy with the credential fine. A directory arrives as a tar of its contents; extract with tar -xf. No credential enters the node and nothing rides through MCP: the transfer is streamed to object storage by the host. The node must be running. On a stopped node this call refuses and does not wake the node. A run_command wakes it, and the wake bills, so wake it only when you need the file now. Large paths take a while: over MCP the call waits about 45 seconds (under your client's own per-call deadline), and if the export is still running then it returns {artifact_id, state: "pending", next_step}, which is not an error. The export keeps running; call get_artifact(artifact_id) until state is "ready" to get the download. If you lose the artifact_id, list_artifacts(node) lists your recent exports. Exports are capped in size (5 GiB; export_data uploads bigger paths in parts) and rate per customer. Every refusal carries a stable error code in structuredContent {error: {code, message, retryable}} (TOO_LARGE, NOT_FOUND, RATE_LIMITED, ...; the docs list them all). This URL is PRIVATE and machine-shaped; to put the file in front of a human (Slack, a doc, <img src>), follow with share_artifact(artifact_id) for a clean public embeddable link. get_artifact(artifact_id) re-mints this download later.
Request
- Base URL: https://autoresearch.sfcompute.com
- URL: https://autoresearch.sfcompute.com/preview/nodes/{name}/exports
- Auth: HTTP bearer
Path parameters
Node name (from list_nodes).
Query parameters
Act in this workspace (its slug). Omitted: the token's bound workspace, then the organization's default. Never ambient - there is no switch-workspace mutation on this door.
Request body
Response
The capability's JSON result.
Changes
No recorded changes to this operation across all 1 revision of this API.