Guides and workflows
Price a part
Describe a job as operations and get the instant estimate.
A job is work we can price. You describe it as a list of operations on our machines. The estimate is computed when you create the job and returned in the same response.
The estimate rule
For each operation, hours × the hourly rate of the first machine in machine_options. Add your material_cost_cents. Add one setup fee. If the total is below the minimum charge, the total is the minimum charge. Read the rates, the fee, and the minimum from the machine catalog.
Describe the operations
Each operation has:
| op_ref | Required. Your step id, unique within the job, 1 to 32 characters: letters, digits, dots, dashes, underscores. |
|---|---|
| name | Required. What the step does, 200 characters. |
| machine_options | Required. A machine id, or several joined with |. The first one sets the estimate; the scheduler may use another. |
| duration_hr | Required. Hours, above 0 and at most 1000. Decimals are fine. |
| predecessors | Optional. op_ref values this step waits for, joined with |. Steps form a graph, not only a line. |
Create the job
/api/intake/jobs| name | Required. 200 characters. |
|---|---|
| operations | Required. 1 to 50 operations. |
| material | Optional. Free text, 200 characters. |
| material_cost_cents | Optional. Your material estimate in cents. Added to the total. |
| quantity | Optional. A positive whole number. |
| due_at | Optional. ISO 8601 date you need the parts by. |
| notes | Optional. 4 000 characters. |
| external_reference | Optional. Your purchase order or job number, 200 characters. |
The key must be tied to a customer account, or the response is 403.
Read the estimate
The 201 response is the job. The parts that matter here:
{
"id": "2c5c95fc-…",
"status": "estimated",
"next": "accept",
"estimate": {
"machine_cents": 21000,
"material_cents": 12000,
"setup_cents": 5000,
"total_cents": 38000
},
"estimate_lines": [
{ "op_ref": "OP-10", "machine": "MILL", "hours": 2, "cents": 18000 },
{ "op_ref": "OP-20", "machine": "BENCH", "hours": 0.5, "cents": 3000 }
],
"operations": [ … ],
"auto_quote_limit_cents": 50000
}
estimate_lines shows the cost of each operation. auto_quote_limit_cents is your key's limit, which decides what accept does.
Validation
A 400 response lists every problem in details, one line per field, for example operations[1].machine_options: unknown machine LASER. Fix them all and send again.