---
title: "List shipments"
method: GET
path: "/api/v1/external/shipments"
tags: ["Shipments"]
---

# List shipments

`GET /api/v1/external/shipments`

## Request

- Base URL: `https://api.wove.com`
- URL: `https://api.wove.com/api/v1/external/shipments`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/wove/apis/wove-external-api/docs/api/v1/external/shipments/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve a paginated list of shipments for your organization.
Results are ordered by creation date (newest first).

## Query parameters

- `page` integer
- `limit` integer
- `status` 'draft' | 'booked' | 'pending' | 'in_transit' | 'delivered' | 'cancelled'
- `shipmentType` 'FCL' | 'LCL' | 'Air'
- `search` string
- `createdAfter` string, date-time
- `createdBefore` string, date-time
- `updatedAfter` string, date-time
- `updatedBefore` string, date-time

## Response `200`

Shipments retrieved successfully

- object
  - `success` boolean
  - `data` object
    - `data` ShipmentSummary[]
      - `creation` EntityCreationInfo: How the record came into existence. `user` is a person in Wove (manual); `email`, `document_upload`, `bulk_upload`, `tms_import` and `api` are Wove-created from that source; `system` is created by Wove with no further source. `null` means nothing was recorded (most records created before October 2026): treat it as unknown, not as manual.
        - `source` 'user' | 'email' | 'document_upload' | 'bulk_upload' | 'tms_import' | 'api' | 'system' | 'null', nullable
      - `emailUpdates` ShipmentEmailUpdates: Email threads whose documents updated the shipment after it was created (pre-alerts, arrival notices and the like). A thread counts once however many of its emails merged. The thread that created the shipment is not counted.
        - `threads` integer
        - `lastAt` string, date-time, nullable: The latest time one of those threads updated the shipment
      - `sync` EntitySyncInfo, nullable: The latest push of the record to your TMS (e.g. CargoWise), the same one the Sync Reports in Wove show. `null` when the record was never synced.
        - `method` 'automation' | 'manual' | 'webhook': An automation rule pushed it, a person pushed it, or a webhook did
        - `status` string
        - `syncedAt` string, date-time, nullable
        - `syncedBy` object, nullable: The person who pushed it. `null` for an automation or webhook push, and for a manual push recorded before Wove kept who made it.
          - `userId` string
          - `name` string, nullable
          - `email` string, nullable
        - `tmsReference` string, nullable: The record's reference in the TMS (for a shipment, the job it was pushed to)
      - `id` string
      - `status` 'draft' | 'pending' | 'booked' | 'in_transit' | 'delivered' | 'cancelled': Current status of the shipment
      - `name` string
      - `shipmentType` 'FCL' | 'LCL' | 'AIR' | 'LTL' | 'FTL' | 'RAIL'
      - `commodity` string
      - `portOfLoading` PortLocation
        - `portCode` string, required
        - `portName` string
        - `countryCode` string
      - `portOfDischarge` PortLocation
        - `portCode` string, required
        - `portName` string
        - `countryCode` string
      - `placeOfReceiptType` 'Port' | 'Airport' | 'Door'
      - `placeOfReceiptPort` PortLocation
        - `portCode` string, required
        - `portName` string
        - `countryCode` string
      - `placeOfReceiptAirport` AirportLocation
        - `airportCode` string, required
        - `airportName` string
        - `countryCode` string
      - `placeOfReceiptAddress` AddressLocation
        - `address1` string
        - `address2` string
        - `city` string
        - `province` string
        - `postalCode` string
        - `country` string
      - `placeOfDeliveryType` 'Port' | 'Airport' | 'Door'
      - `placeOfDeliveryPort` PortLocation
        - `portCode` string, required
        - `portName` string
        - `countryCode` string
      - `placeOfDeliveryAirport` AirportLocation
        - `airportCode` string, required
        - `airportName` string
        - `countryCode` string
      - `placeOfDeliveryAddress` AddressLocation
        - `address1` string
        - `address2` string
        - `city` string
        - `province` string
        - `postalCode` string
        - `country` string
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `documentCount` integer: Number of documents attached to this shipment
    - `pagination` object
      - `page` integer
      - `limit` integer
      - `total` integer
      - `totalPages` integer
      - `hasNext` boolean
      - `hasPrev` boolean

---

[API](https://skmtc.dev/wove/apis/wove-external-api.md) - [All operations](https://skmtc.dev/wove/apis/wove-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wove/apis/wove-external-api/revisions/37290e267e07?raw)
