materials.remove
Remove a recorded material (recorded in error or returned). It stays in the history with who removed it and why, and no longer counts. A field worker removes only materials they entered.
| Who | Agents can call this |
| REST | POST /v1/materials/remove |
| MCP tool | materials_remove |
| Writes | yes, send an Idempotency-Key |
| Area | Field work (checklists, forms, time, notes, change orders, subcontractors) |
When to use it
Record what went into a job: materials.add from the price book (pricebook_item_id; its name, unit, price, cost and taxable are copied as they are today) or typed in, optionally on one visit. Afterwards only the quantity, visit and notes change (materials.update); for anything else remove it (materials.remove keeps it in history with who and why) and add it again.
What to tell the owner
Say what you did in plain words and what happens next.
Input
| Field | Type | Required |
|---|---|---|
material_id | string (uuid) | yes |
reason | string | no |
Example
POST https://doingwork.work/v1/materials/remove
content-type: application/json
Idempotency-Key: 3f1c...
{
"material_id": "00000000-0000-4000-8000-000000000000"
}Output
JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are {code, message, status}.
Errors
| Code | Status | What to do |
|---|---|---|
invalid_input, invalid_token, rate_limited | Can happen on any call. See errors. |