---
title: "List purchase orders"
method: GET
path: "/purchaseorders"
tags: ["Purchase Orders"]
---

# List purchase orders

`GET /purchaseorders`

Endpoint used to list purchase order resources

## Query parameters

- `cursor` string — Last pagination reference
- `limit` integer — max number of Purchase Orders returned
- `updatedAt[gte]` string, date-time — Return records whose updatedAt is at or after this ISO 8601 date-time (UTC).
- `updatedAt[lte]` string, date-time — Return records whose updatedAt is at or before this ISO 8601 date-time (UTC).
- `createdAt[gte]` string, date-time — Return records whose createdAt is at or after this ISO 8601 date-time (UTC).
- `createdAt[lte]` string, date-time — Return records whose createdAt is at or before this ISO 8601 date-time (UTC).
- `customFieldName` string[] — Filter purchase orders by custom field value. Your query parameter should be your custom field name. (ie: To filter by a custom field named "Industry" with the value "Construction", you would do this "/purchaseorders?Industry=Construction"). <br><br>Adding multiple instance of the same custom field act as an <code>OR</code> and adding a different custom field act as an <code>AND</code>. (ie: To filter by a custom field named <code>Industry</code> with the value <code>Construction</code> OR <code>Transportation</code> AND the custom field <code>Manufacturer</code> with the value <code>ACME</code>, you would do this <code>/purchaseorders?Industry=Construction&Industry=Transportation&Manufacturer=ACME</code>). <br><br>If your custom field label is the same as a reserved query parameter such as <code>limit</code>, <code>sort</code>, <code>expand</code>, etc, you can add <code>__c</code> to your custom field filtering (ie: To filter by a custom field named <code>limit</code> with the value <code>ten</code>, you would do this <code>/purchaseorders?limit__c=ten</code>). <br><br>Note that your custom field needs to be created beforehand. Only number and single line text custom field types are supported.
- `statuses` string[] — To filter by multiple statuses: `statuses=APPROVED&statuses=COMPLETED`
- `sort` 'id' | 'createdAt' | 'updatedAt' | '-id' | '-createdAt' | '-updatedAt' — Attribute on which to sort the list. (for descending order, prefix attribute with '-').

## Headers

- `x-organization-id` integer

## Response `200`

Successfully fetched Purchase Orders list

- object
  - `purchaseOrders` object[], required
    - `id` number, required — Global ID of the Purchase Order
    - `status` string, nullable, required — Status of the Purchase Order. Supported values are APPROVED, CANCELED, COMPLETED, DECLINED, PARTIALLY_FULFILLED, PENDING, REQUESTED
    - `updatedAt` string, nullable — Date the Purchase Order was last updated
    - `createdAt` string, date-time, nullable — Date the Purchase Order was created
  - `nextCursor` string, nullable, required — The cursor to retrieve the next page of Purchase Orders.
  - `nextPageUrl` string, nullable, required — Path with query parameters that can be used to retrieve the next page of Purchase Orders.

## Other responses

- `400` — Error with query
- `401` — Invalid token

---

[API](https://skmtc.net/getmaintainx/apis/maintainx-api.md) · [All operations](https://skmtc.net/getmaintainx/apis/maintainx-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getmaintainx/maintainx-api/revisions/ef9153fcac7c/schema)
