---
title: "Retrieve a paginated list of purchase orders"
method: GET
path: "/purchase-orders"
tags: ["purchaseOrders"]
---

# Retrieve a paginated list of purchase orders

`GET /purchase-orders`

Returns a paginated list of purchase orders, filterable by company, location, vendor, status, and date range.

## Query parameters

- `ottimate_company_id` integer
- `ottimate_location_id` integer
- `erp_vendor_id` string
- `status` 'pending' | 'open' | 'received' | 'closed' | 'flagged' | 'archived' | 'deleted'
- `date_from` string, date
- `date_to` string, date
- `expand` string
- `external_id` string
- `page` integer
- `limit` integer

## Headers

- `Authorization` string, required
- `X-Api-Key` string, required
- `X-API-Version` string

## Response `200`

Successful response with paginated purchase order list

- PurchaseOrdersGetPurchaseOrdersRootResponse200
  - `version` string
  - `count` integer
  - `page` integer
  - `limit` integer
  - `purchase_orders` PurchaseOrderSummary[]
    - `id` string, required
    - `external_id` string — External unique identifier for idempotent operations
    - `po_number` string — PO number (client-provided, mandatory)
    - `status` 'pending' | 'open' | 'received' | 'closed' | 'flagged' | 'archived' | 'deleted', required
    - `ottimate_location_id` integer
    - `ottimate_company_id` integer
    - `date` string, date
    - `erp_vendor_id` string — External vendor identifier from ERP system
    - `erp_vendor_name` string — Vendor name from ERP system
    - `total_amount` number, double
    - `created_date` string, date-time
    - `created_date_utc` string, date-time, nullable — UTC equivalent of created_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
    - `last_modified_date` string, date-time
    - `last_modified_date_utc` string, date-time, nullable — UTC equivalent of last_modified_date. ISO 8601 with Z suffix, e.g. "2025-05-20T15:17:35.652584Z".
    - `custom_fields` PurchaseOrderSummaryCustomFields — Custom fields configured for this company's purchase orders

## Other responses

- `400` — Bad request - Invalid parameters or request format
- `401` — Unauthorized - Authentication required or invalid credentials
- `403` — Forbidden - Access denied or insufficient permissions

---

[API](https://skmtc.dev/ottimate/apis/api-reference.md) · [All operations](https://skmtc.dev/ottimate/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ottimate/api-reference/revisions/ba91ff4c6969/schema)
