---
title: "List Purchase Orders"
method: GET
path: "/purchase_orders"
tags: ["Purchase Orders"]
---

# List Purchase Orders

`GET /purchase_orders`

## Request

- Base URL: `https://secure.fleetio.com/api`
- URL: `https://secure.fleetio.com/api/purchase_orders`
- Auth: API key in header `Authorization` and API key in header `Account-Token`
- TypeScript: <https://skmtc.dev/fleetio/apis/fleetio-developer-api/docs/purchase_orders/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a list of Purchase Orders belonging to your account.

## Query parameters

- `start_cursor` string
- `per_page` integer
- `filter` object
  - `number` EqFilter
    - `eq` string, required
  - `part_location_id` EqFilter
    - `eq` string, required
  - `rejected_by_id` EqFilter
    - `eq` string, required
  - `submitted_for_approval_by_id` EqFilter
    - `eq` string, required
  - `purchased_by_id` EqFilter
    - `eq` string, required
  - `created_by_id` EqFilter
    - `eq` string, required
  - `approved_by_id` EqFilter
    - `eq` string, required
  - `vendor_id` EqFilter
    - `eq` string, required
  - `state` IncludeFilter
    - `include` string, required
  - `labels` IncludeFilter
    - `include` string, required
  - `created_at` union
    - object
      - `lt` string, required
    - object
      - `lte` string, required
    - object
      - `gt` string, required
    - object
      - `gte` string, required
  - `updated_at` union
    - object
      - `lt` string, required
    - object
      - `lte` string, required
    - object
      - `gt` string, required
    - object
      - `gte` string, required
- `sort` object
  - `id` 'asc' | 'desc'
  - `created_at` 'asc' | 'desc'
  - `updated_at` 'asc' | 'desc'

## Response `200`

OK

- object
  - `start_cursor` string, nullable: The current start cursor of the records returned.
  - `next_cursor` string, nullable: The next cursor to retrieve the next page of records.
  - `per_page` integer: The maximum number of records returned.
  - `estimated_remaining_count` integer: The number of remaining records including the returned records, up to a maximum of 500.
  - `filtered_by` union[]: The filters applied to the returned record set.
    - union
      - object
        - `number` EqFilter
          - `eq` string, required
      - object
        - `part_location_id` EqFilter
          - `eq` string, required
      - object
        - `rejected_by_id` EqFilter
          - `eq` string, required
      - object
        - `submitted_for_approval_by_id` EqFilter
          - `eq` string, required
      - object
        - `purchased_by_id` EqFilter
          - `eq` string, required
      - object
        - `created_by_id` EqFilter
          - `eq` string, required
      - object
        - `approved_by_id` EqFilter
          - `eq` string, required
      - object
        - `vendor_id` EqFilter
          - `eq` string, required
      - object
        - `state` IncludeFilter
          - `include` string, required
      - object
        - `labels` IncludeFilter
          - `include` string, required
      - object
        - `created_at` union
          - object
            - `lt` string, required
          - object
            - `lte` string, required
          - object
            - `gt` string, required
          - object
            - `gte` string, required
      - object
        - `updated_at` union
          - object
            - `lt` string, required
          - object
            - `lte` string, required
          - object
            - `gt` string, required
          - object
            - `gte` string, required
  - `sorted_by` union[]: The sorts applied to the returned record set.
    - union
      - object
        - `updated_at` 'asc' | 'desc'
      - object
        - `created_at` 'asc' | 'desc'
      - object
        - `id` 'asc' | 'desc'
  - `records` PurchaseOrderSummary[]
    - `id` integer, required
    - `number` integer, required: The Purchase Order Number.
    - `description` string, nullable, required: Open text field for Purchase Order description.
    - `state` 'draft' | 'submitted_for_approval' | 'rejected' | 'approved' | 'purchased' | 'received_partial' | 'received_full' | 'closed', nullable, required: See the [Purchase Order Lifecycle Guide](/docs/guides/inventory/purchase-order-lifecycle) for more information about Purchase Order states and how to transition between them.
    - `documents_count` integer, required
    - `comments_count` integer, required
    - `watchers_count` integer, required
    - `discount_type` string, nullable, required: The discount type applied to this purchase.
    - `tax_1_type` string, nullable, required: The primary tax type on this purchase
    - `tax_2_type` string, nullable, required: The secondary tax type on this purchase
    - `submitted_for_approval_at` string, date-time, nullable, required: The date and time at which this Purchase Order was submitted for approval.
    - `rejected_at` string, date-time, nullable, required: The date and time at which this Purchase Order was rejected.
    - `approved_at` string, date-time, nullable, required: The date and time at which this Purchase Order was approved.
    - `purchased_at` string, date-time, nullable, required: The date and time at which this Purchase Order was purchased.
    - `received_partial_at` string, date-time, nullable, required: The date and time at which this Purchase Order was partially received.
    - `received_full_at` string, date-time, nullable, required: The date and time at which this Purchase Order was fully received.
    - `closed_at` string, date-time, nullable, required: The date and time at which this Purchase Order was closed.
    - `created_at` string, date-time, nullable, required: The date and time at which this Purchase Order was created.
    - `updated_at` string, date-time, nullable, required: The date and time at which this Purchase Order was last updated.
    - `discount_cents` integer, nullable, required: The amount fo the discount on this Purchase Order in cents.
    - `tax_1_cents` integer, nullable, required: The amount of the primary tax on this Purchase Order in cents.
    - `tax_1_percentage` string, nullable, required: The percentage for the primary tax.
    - `tax_2_cents` integer, nullable, required: The amount of the secondary tax on this Purchase Order in cents.
    - `tax_2_percentage` string, nullable, required: The percentage for the secondary tax.
    - `subtotal_cents` integer, nullable, required: The subtotal for this Purchase Order in cents.
    - `shipping_cents` integer, nullable, required: The shipping amount for this Purchase Order in cents.
    - `total_amount_cents` integer, nullable, required: The total amount for this Purchase Order in cents.
    - `vendor_id` integer, nullable, required: The ID of the `Vendor` for this Purchase Order.
    - `approved_by_id` integer, nullable, required: The ID of the `User` who has approved this Purchase Order.
    - `created_by_id` integer, nullable, required: The ID of the `User` who created this Purchase Order.
    - `closed_by_id` integer, nullable, required: The ID of the `User` who has closed this Purchase Order.
    - `purchased_by_id` integer, nullable, required: The ID of the `User` who has purchased this Purchase Order.
    - `rejected_by_id` integer, nullable, required: The ID of the `User` who has rejected this Purchase Order.
    - `received_partial_by_id` integer, nullable, required: The ID of the `User` who has partially received this Purchase Order.
    - `received_full_by_id` integer, nullable, required: The ID of the `User` who has received this Purchase Order in full.
    - `submitted_for_approval_by_id` integer, nullable, required: The ID of the `User` who has submitted this Purchase Order for approval.
    - `purchase_order_status_id` integer, nullable, required: The ID of the `PurchaseOrderStatus` associated with this Purchase Order.
    - `part_location_id` integer, nullable, required: The ID of the `PartLocation` associated with this Purchase Order.
    - `custom_fields` CustomFields, nullable: *Full details on working with Custom Fields [here](/docs/overview/custom-fields).
    - `labels` object[], required
      - `id` integer
      - `name` string
    - `vendor` VendorMini, nullable, required: A Vendor
      - `name` string, required: The name of the Vendor.
      - `phone` string, nullable, required: The phone number of the Vendor.
      - `city` string, nullable, required: The city of the Vendor.
      - `region` string, nullable, required: The region, state, province, or territory of the Vendor.
      - `postal_code` string, nullable, required: The postal code or ZIP code of the Vendor.
      - `country` string, nullable, required: The country of the Vendor.
      - `external_id` string, nullable, required: The external identifier of the Vendor.

## Other responses

- `400`: The format or parameters of the request was invalid
- `401`: Request could not be authenticated
- `500`: Something unexpected happened

## Changes

- **2026-11-06** `49558d744bd7`: 1 info
  - for the `query` request parameter `per_page`, the min was decreased from `2.00` to `1.00`

[Operation history](https://skmtc.dev/fleetio/apis/fleetio-developer-api/changes/purchase_orders/get.md)

---

[API](https://skmtc.dev/fleetio/apis/fleetio-developer-api.md) - [All operations](https://skmtc.dev/fleetio/apis/fleetio-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fleetio/apis/fleetio-developer-api/revisions/49558d744bd7?raw)
