---
title: "Get Work Orders"
method: GET
path: "/service_orders"
---

# Get Work Orders

`GET /service_orders`

## Request

- Base URL: `https://dc-region.zuperpro.com/api`
- URL: `https://dc-region.zuperpro.com/api/service_orders`
- Auth: API key in header `x-api-key`

Operates on Service Orders, shown in the Zuper client app as "Work Order" (in every industry). Work Orders share the exact same underlying schema and endpoints as Purchase Orders / Material Orders; they're distinguished only by the `purchase_order_type` field (`SERVICE_ORDER` here) and the `/service_orders` route prefix. `purchase_order_type` is always enforced server-side based on this route; you cannot use this endpoint to read the other module's records.

## Query parameters

- `filter.keyword` string
- `filter.is_active` string
- `filter.vendor` string
- `filter.created_from_date` string, date
- `filter.created_to_date` string, date
- `filter.due_from_date` string, date
- `filter.due_to_date` string, date
- `filter.purchase_order_from_date` string, date
- `filter.purchase_order_to_date` string, date
- `filter.created_by` string
- `filter.status` string
- `filter.updated_at_from` string, date
- `filter.updated_at_to` string, date
- `filter.job` string
- `filter.estimate` string
- `filter.reference_number` string
- `filter.purchase_order_number` string
- `filter.await_approval_from` string
- `filter.purchase_order_uid` string
- `page` string
- `limit` string
- `sort` string
- `cursor` string
- `prev_cursor` string
- `cursor_pagination` string
- `include_deleted` string
- `fields_to_select` string
- `filter.project` string
- `filter.asset` string
- `filter.material_request` string
- `filter.appointment_uid` string
- `filter.parent_po` string
- `filter.current_delivery_status` string
- `filter.supplier_order_ref` string
- `filter.delivery_method` string

## Response `200`

200

- object
  - `type` 'success'
  - `message` string
  - `data` object[]
  - `total_records` integer
  - `current_page` integer
  - `total_pages` integer
  - `paging` object: Present only when cursor_pagination is used.
    - `next` string, nullable
    - `previous` string, nullable
    - `has_more` boolean

## Changes

- **2026-11-03** `3c21bc232e16`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zuper/apis/zuper-pro-api/changes/service_orders/get.md)

---

[API](https://skmtc.dev/zuper/apis/zuper-pro-api.md) - [All operations](https://skmtc.dev/zuper/apis/zuper-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zuper/apis/zuper-pro-api/revisions/3c21bc232e16?raw)
