Create a program
POST/parts/:partId/programs
Creates one Program for the URL part using either the supplied cutConfigId or, when the body is omitted/empty/null, the API key creator’s default cut config and its linked tool libraries. Requires the Part’s feature detection to be complete — returns 409 Conflict if GET /parts/{partId} has not yet reported status: "ready". Auto-creates a Project named API: <part-name> (<timestamp>) on first call so the Part becomes visible in the Toolpath web UI; subsequent calls for the same Part reuse the existing Project. Engine strategy runs asynchronously; poll GET /parts/{partId}/programs/{programId} until status transitions from processing to ready or failed.
Rate limited to 30 program creations per minute per team, paced at one every 2 seconds, independent of the POST /parts quota. Exceeding the limit returns 429 with a Retry-After header.
Request
Responses
- 202
- 400
- 401
- 403
- 404
- 409
- 429
- 500
- 503
Program accepted for processing. Poll GET /parts/{partId}/programs/{programId} until status is ready.
Response Headers
URL for polling the new program. Sent on the first response only; idempotent replays return the same body without this header, so prefer data.id.
Invalid request
Missing or invalid bearer token
API key lacks the required scope for this action
Resource not found
Idempotency-Key collision (same key, different body)
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
Unexpected server error