---
title: "Update Job"
method: PATCH
path: "/api/field/jobs/{job_id}"
tags: ["field"]
---

# Update Job

`PATCH /api/field/jobs/{job_id}`

## Request

- Base URL: `https://api.electricair.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.electricair.io/api/field/jobs/{job_id}`
- Auth: none declared

## Path parameters

- `job_id` integer, required

## Request body

- JobUpdateRequest
  - `summary` string, nullable
  - `job_summary` string, nullable
  - `instructions` string, nullable
  - `finish_override_at` string, date-time, nullable
  - `office_notes` string, nullable
  - `priority` integer, nullable
  - `job_type_id` integer, nullable
  - `estimated_hours` number, nullable
  - `budget_hours` number, nullable
  - `sold_hours` number, nullable
  - `revenue` number, nullable
  - `status` 'on_hold' | 'resume' | 'cancelled' | 'reopen', nullable

## Response `200`

OK

- JobDetailSchema
  - `job` JobCardSchema, required: A job as it appears on a list or the schedule board.
    - `id` integer, required
    - `number` string, required
    - `summary` string, required
    - `job_type_id` integer, required
    - `job_type_name` string, required
    - `category` string, required
    - `business_unit` string, required
    - `status` string, required
    - `status_label` string, required
    - `priority` integer, required
    - `customer_name` string, required
    - `address` AddressSchema
      - `line1` string, required
      - `line2` string, required
      - `city` string, required
      - `state` string, required
      - `postal_code` string, required
      - `formatted` string, required
      - `latitude` number, nullable
      - `longitude` number, nullable
    - `project_id` integer, nullable
    - `deal_id` integer, nullable
    - `service_request_id` integer, nullable
    - `customer_id` integer, nullable
    - `estimated_hours` number, nullable
    - `planned_days` integer
    - `sold_hours` number, nullable
    - `crew_size` integer
    - `suggest_helper` boolean
    - `plan_note` string
    - `next_visit_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `forms_open` integer
    - `job_summary` string
    - `starts_at` string, date-time, nullable
    - `finish_at` string, date-time, nullable
    - `finish_overridden` boolean
    - `unbooked_days` string[]
    - `appointments_needed` integer
    - `appointments_booked` integer
    - `appointments_crewed` integer
    - `appointments_started` integer
    - `tags` DispatchTagSchema[]
      - `key` string, required
      - `label` string, required
      - `detail` string, required
  - `customer_phone` string, required
  - `customer_email` string, required
  - `instructions` string, required
  - `office_notes` string, required
  - `contract_items` ContractItemSchema[], required
    - `kind` string, required
    - `name` string, required
    - `quantity` number, required
    - `description` string
  - `finish_override_at` string, date-time, nullable
  - `budget_hours` number, nullable
  - `revenue` number, nullable
  - `is_callback` boolean, required
  - `callback_of` JobCardSchema: A job as it appears on a list or the schedule board.
    - `id` integer, required
    - `number` string, required
    - `summary` string, required
    - `job_type_id` integer, required
    - `job_type_name` string, required
    - `category` string, required
    - `business_unit` string, required
    - `status` string, required
    - `status_label` string, required
    - `priority` integer, required
    - `customer_name` string, required
    - `address` AddressSchema
      - `line1` string, required
      - `line2` string, required
      - `city` string, required
      - `state` string, required
      - `postal_code` string, required
      - `formatted` string, required
      - `latitude` number, nullable
      - `longitude` number, nullable
    - `project_id` integer, nullable
    - `deal_id` integer, nullable
    - `service_request_id` integer, nullable
    - `customer_id` integer, nullable
    - `estimated_hours` number, nullable
    - `planned_days` integer
    - `sold_hours` number, nullable
    - `crew_size` integer
    - `suggest_helper` boolean
    - `plan_note` string
    - `next_visit_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `forms_open` integer
    - `job_summary` string
    - `starts_at` string, date-time, nullable
    - `finish_at` string, date-time, nullable
    - `finish_overridden` boolean
    - `unbooked_days` string[]
    - `appointments_needed` integer
    - `appointments_booked` integer
    - `appointments_crewed` integer
    - `appointments_started` integer
    - `tags` DispatchTagSchema[]
      - `key` string, required
      - `label` string, required
      - `detail` string, required
  - `visits` VisitSchema[], required
    - `id` integer, required
    - `job_id` integer, required
    - `starts_at` string, date-time, required
    - `ends_at` string, date-time, required
    - `arrival_window_start` string, date-time, nullable
    - `arrival_window_end` string, date-time, nullable
    - `status` string, required
    - `status_label` string, required
    - `tentative` boolean
    - `notes` string, required
    - `arrived_at` string, date-time, nullable
    - `finished_at` string, date-time, nullable
    - `crew` CrewMemberSchema[], required
      - `id` integer, required
      - `name` string, required
      - `color` string, required
      - `role` string, required
      - `team` string, required
      - `is_lead` boolean, required
      - `vehicle_name` string, nullable
  - `items` JobItemSchema[], required
    - `id` integer, required
    - `kind` string, required
    - `kind_label` string, required
    - `name` string, required
    - `sku` string, required
    - `quantity` number, required
    - `quantity_used` number, nullable
    - `status` string, required
    - `status_label` string, required
    - `serial_number` string, required
    - `source` string, required
    - `stock_unit_id` integer, nullable
    - `product_id` integer, nullable
    - `cart_id` integer, nullable
    - `unit_price` number, nullable
    - `invoice_number` string, nullable
  - `sold_lines` integer
  - `missing_sold_lines` integer
  - `replaced_sold_lines` integer
  - `forms` FormSummarySchema[], required
    - `id` integer, required
    - `job_form_id` integer, required
    - `name` string, required
    - `audience` string, required
    - `required` boolean, required
    - `status` string, required
    - `complete` integer, required
    - `total` integer, required
    - `ai_filled` integer
  - `photos` PhotoSchema[], required
    - `id` integer, required
    - `url` string, required
    - `category` string, required
    - `caption` string, required
    - `taken_at` string, date-time, nullable
    - `technician_name` string, nullable
    - `uploaded_by_technician_id` integer, nullable
    - `uploaded_at` string, date-time, nullable
    - `ready` boolean, required
    - `form_name` string, nullable
    - `media_type` string
    - `content_type` string
  - `time` JobTimeSchema[], required
    - `technician` TechnicianRefSchema, required
      - `id` integer, required
      - `name` string, required
      - `color` string, required
      - `role` string, required
      - `team` string, required
    - `hours` number, required
  - `bonus_preview` BonusLineSchema[], required
    - `rule_id` integer, nullable
    - `award_id` integer, nullable
    - `rule` string, required
    - `technician_id` integer, nullable
    - `amount` number, required
    - `total` number, required
    - `reason` string, required
  - `invoices` InvoiceRowSchema[], required
    - `id` integer, required
    - `number` string, required
    - `title` string, required
    - `status` string, required
    - `status_label` string, required
    - `customer_name` string, required
    - `job_id` integer, nullable
    - `job_number` string, nullable
    - `issued_on` string, date, nullable
    - `due_on` string, date, nullable
    - `total` number, required
    - `amount_paid` number, required
    - `balance` number, required
    - `days_overdue` integer, required
    - `qbo_synced` boolean, required
    - `qbo_sync_error` string, required
  - `cost` JobCostSchema, required
    - `labor_hours` number, required
    - `labor_cost` number, required
    - `material_cost` number, required
    - `revenue` number, nullable
    - `gross_margin` number, nullable
  - `completion_notes` string, required
  - `customer_signed_name` string, required
  - `signature_url` string, nullable
  - `qc_passed_at` string, date-time, nullable
  - `review` InstallReviewSchema, required: The install manager's review from the photos and the office QC form, and what it pays.
    - `rating` integer, nullable
    - `notes` string, required
    - `reviewed_at` string, date-time, nullable
    - `reviewed_by` string, nullable
    - `qc_passed_at` string, date-time, nullable
    - `office_qc_form_id` integer, nullable
    - `office_qc_complete` integer
    - `office_qc_total` integer
    - `open_punch_items` integer
    - `awards` BonusAwardSchema[], required
      - `id` integer, required
      - `technician_id` integer, required
      - `technician_name` string, required
      - `amount` number, required
      - `reason` string, required
      - `awarded_by` string, nullable
      - `created_at` string, date-time, required
    - `can_edit` boolean, required
  - `project_status` string, nullable
  - `readiness` ReadinessSchema
    - `ready` boolean, required
    - `first_day` string, date, nullable
    - `checks` ReadinessCheckSchema[], required
      - `key` string, required
      - `label` string, required
      - `ok` boolean, required
      - `detail` string, required

## Changes

> 22 revisions in range; 1 not diffed.

- **2026-11-03** `a13d832a5676`: 1 info
  - added the optional property `forms/items/ai_filled` to the response with the `200` status
- **2026-11-02** `e9b987a69618`: 1 info
  - added the optional property `replaced_sold_lines` to the response with the `200` status
- **2026-10-28** `558d42db3b2e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/changes/api/field/jobs/:job_id/patch.md)

---

[API](https://skmtc.dev/electricair/apis/electric-air-autoquote-api.md) - [All operations](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/llms.txt) - [OpenAPI document](https://skmtc.dev/electricair/apis/electric-air-autoquote-api/revisions/a13d832a5676?raw)
