Reference · PATCH /v1/jobs/:id
Update job
Update job
Edit a job you previously created while it’s still in an editable state (typically before scheduling). Send only the fields you want to change. Returns 204 No Content on success.
Request
curl -X PATCH -H "Authorization: Bearer fi_pk_…" \
-H "Content-Type: application/json" \
-d '{
"title": "Annual service (rescheduled)",
"notes": "Customer asked to push back a week.",
"start_time": "2026-07-08T09:00:00+10:00",
"custom_fields": { "scope_of_work": "Install + commissioning" }
}' \
https://<host>/v1/jobs/21172159Response
HTTP/1.1 204 No Content
Fields
titlestring
Replace the title. 1–200 chars. Example: `"Annual service (rescheduled)"`.
notesstring
Replace the office-scoped job log. This field is for the scheduling and admin team — not seen by the field tech. The new value overwrites the old one, so append on your side if you want to preserve history. ≤ 2000 chars.
start_timeISO 8601
New preferred start time. Example: `"2026-07-08T09:00:00+10:00"`.
end_timeISO 8601
New preferred end time.
purchase_order_numberstring
Replace the PO number. ≤ 100 chars.
external_idstring
Replace your reference. ≤ 36 chars.
custom_fieldsobject<string, string>
Update one or more custom-field values. Send only the keys you want to change. Example: `{ "scope_of_work": "Install + commissioning" }`.
Errors
400 invalid-body400 unknown-custom-field400 field-not-writable401 unauthorized404 not-found409 editing-locked429 rate-limited
409 editing-locked means the job has moved past the editable states (e.g. scheduling has confirmed it). At that point, contact your internal coordinator instead. 404 covers both 'no such job' and 'this job isn’t yours' — they look the same from the outside.