Fetch a program by id
GET/parts/:partId/programs/:programId
Returns a single program for the URL part, including its operations and per-setup breakdown. 200 when ready or failed; 202 while Engine processing is in progress. When status is failed, failureCode and failureReason describe what went wrong; both are null otherwise. Returns 404 if the part or program does not exist, belongs to a different team, or the program is not on that part.
The optional timings query param selects which engine times drive each setup’s machiningTimeSeconds:
fast(default): the heuristic times, available as soon as the program is ready.refined: the simulation-based times. If that pass is still computing, the endpoint returns202withstatus: "processing"(poll until ready); each setup’smachiningTimeSecondsisnulluntil the refined times land.
A ready setup can also report machiningTimeSeconds: null when its computed time failed server-side validation and was withheld; treat null as "no usable time available", not as zero.
Request
Responses
- 200
- 202
- 400
- 401
- 404
- 429
- 500
Program is ready or failed
Program is still being processed by the Engine (also returned when timings=refined and the refined pass has not finished)
Invalid request
Missing or invalid bearer token
Resource not found
Rate limit exceeded
Response Headers
Seconds to wait before retrying. Guaranteed on application-limited responses (POST /parts and POST /parts/{partId}/programs); may be absent on infrastructure-level 429s from other endpoints.
Unexpected server error