Skip to content
ACS Infra
Harvest

Get Harvest

GET
/v1/harvest/{job_id}

Return the harvest job and its status. A done job has its result: a link for its manifest, its stats and each shard, which works 7 days and needs no API key; each answer makes new links. With wait, wait up to that many seconds for its status to change. An API key may have 4 such waits at once; past that, the answer comes at once with X-Acs-Longpoll: declined and Retry-After: 3.

Authorization

bearer
headerAuthorizationBearer <token>

An API key: Authorization: Bearer sk-acs-..., or a key of the old platform, acs-bm-.... A User makes and revokes keys in the App.

Path Parameters

job_id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$
Formatuuid

Query Parameters

wait?string

Response Body

HarvestJob

application/json
  1. response
job_id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$
Formatuuid
run_id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$
Formatuuid
status*string

pending while it waits for the Runner, then running, then done, failed or cancelled.

Value in"pending""running""done""failed""cancelled"
model*string
n_prompts*integer

How many prompts it has.

reserved_tokens*integer

The tokens it holds against your budget while it runs: each prompt's UTF-8 bytes, and 1 more for its start token.

layers*array<integer>

The layers it reads, in ascending order.

tokens*|

The tokens it was charged: what the engine read when it is done, the reserved tokens when it was cancelled after its GPU run started, else 0. null until it ends.

created_at*string

An ISO 8601 time in UTC, such as 2026-11-03T09:30:00.123+00:00.

started_at*|

When its GPU run started. null until it starts.

completed_at*|

When it ended. null until it ends.

result?

The files of a done harvest job. Each link works 7 days and needs no API key. Each answer makes new links; the files are kept.

urls_expire_at?string

With result: when its links stop working, 7 days after this answer.

error?string

Why it failed. Only on a failed job.

Example Request
curl -X GET 'https://api.v2.infra.acsresearch.org/v1/harvest/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Authorization: Bearer <API_KEY>'
Example Response
{  "job_id": "453bd7d7-5355-4d6d-a38e-d9e7eb218c3f",  "run_id": "dded282c-8ebd-44cf-8ba5-9a234973d1ec",  "status": "pending",  "model": "string",  "n_prompts": 0,  "reserved_tokens": 0,  "layers": [    0  ],  "tokens": 0,  "created_at": "string",  "started_at": "string",  "completed_at": "string",  "result": {    "n_shards": 0,    "layer_indices": [      0    ],    "manifest_url": "string",    "shard_urls": [      "string"    ],    "stats_url": "string",    "contents": "activations",    "tokens": 0,    "bytes_written": 0,    "timings": {      "load_s": 0,      "forward_s": 0,      "save_s": 0,      "upload_s": 0    }  },  "urls_expire_at": "string",  "error": "string"}