---
title: "List shipments and their document statuses"
method: GET
path: "/v2/shipments/{shipment_id}/labels"
tags: ["documents"]
---

# List shipments and their document statuses

`GET /v2/shipments/{shipment_id}/labels`

## Request

- Base URL: `https://api.shipstation.com`
- URL: `https://api.shipstation.com/v2/shipments/{shipment_id}/labels`
- Auth: API key in header `api-key`

<aside class="access" aria-label="Endpoint access">
      <table class="access__table">
        <thead>
          <tr>
            <th class="access__table-header">Products</th>
            <th class="access__table-header">Plans</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td class="access__table-cell access__product">
              <img class="access__logo" src="/static/logos/shipstation-api-logo.svg" alt="ShipStation API Logo" loading="lazy" decoding="async"/>
              <div class="access__sub">Formerly ShipEngine</div>
            </td>
            <td class="access__table-cell access__plans">
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-api-free.md" class="access__plan">Free</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-api-advanced-enterprise.md" class="access__plan">Advanced</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-api-advanced-enterprise.md" class="access__plan">Enterprise</a>
            </td>
          </tr>
          <tr>
            <td class="access__table-cell">
              <img class="access__logo" src="/static/logos/shipstation-logo.svg" alt="ShipStation Logo" loading="lazy" decoding="async"/>
            </td>
            <td class="access__table-cell access__plans">
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-free-starter.md" class="access__plan access__plan--off">Free</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-free-starter.md" class="access__plan access__plan--off">Starter</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-standard-premium.md" class="access__plan">Standard</a>
              <a href="/apis/@shipstation-v2/docs/getting-started/plans/shipstation-standard-premium.md" class="access__plan">Premium</a>
            </td>
          </tr>
        </tbody>
      </table>
      <footer class="access__footer">
        <a class="access__help" href="/apis/@shipstation-v2/docs/getting-started/products-and-plans.md">
          Learn about products and plans
          <img src="/static/icons/external-link.svg" alt="External Link Icon" style="width: 16px;" loading="lazy" decoding="async"/>
        </a>
      </footer>
    </aside>

Retrieve each shipment associated with the given id, including its tracking number and registered carrier documents.

## Response `200`

The request was a success.

- OrderShipment[]: The list of shipments associated with the requested id and their registered documents.
  - `shipment_id` string: The unique identifier of the shipment.
  - `tracking_number` string: The tracking number of the shipment.
  - `documents` DocumentStatus[]: The carrier documents registered against the shipment.
    - `document_id` string: The unique identifier of the document.
    - `type` 'commercial_invoice' | 'certificate_of_origin' | 'usmca_commercial_invoice_certification_of_origin' | 'usmca_certification_of_origin' | 'pro_forma_invoice' | 'other' | 'authorization_form' | 'export_accompanying_document' | 'export_license' | 'import_permit' | 'one_time_nafta' | 'power_of_attorney' | 'packing_list' | 'sed_document' | 'shippers_letter_of_instruction' | 'declaration' | 'section_232_customs_affidavit': The type of carrier document being registered. Supported values vary by carrier. See the [Carrier Document Upload guide](/upload-carrier-documents) for the document types each carrier accepts.
    - `file_name` string: The file name of the document.
    - `status` 'awaiting_upload' | 'processing' | 'processing_claimed' | 'invalid' | 'uploaded' | 'queued' | 'sent' | 'failed': The processing status of a carrier document. - `awaiting_upload` - The document has been registered and is waiting for the file to be uploaded to the provided upload target. - `processing` - The uploaded file is being processed. - `processing_claimed` - The document has been claimed for processing. - `invalid` - The document failed validation and cannot be used. - `uploaded` - The file has been uploaded successfully and is ready to be sent to the carrier. - `queued` - The document is queued to be sent to the carrier. - `sent` - The document has been transmitted to the carrier. - `failed` - Sending the document to the carrier failed.
    - `error` string, nullable: A description of the error when the document is `invalid` or `failed`; otherwise `null`.
    - `external_id` string, nullable: The carrier-assigned identifier for the document once it has been sent; otherwise `null`.

## Other responses

- `400`: The request contained errors.
- `404`: The specified resource does not exist.
- `500`: An error occurred on ShipStation API's side.

## Changes

- **2026-10-22** `4e29670aa28d`: 6 warning
  - added the new `bring_your_own_label_not_supported` enum value to the `errors/items/error_code` response property for the response status `400`
  - added the new `bring_your_own_label_not_supported` enum value to the `errors/items/error_code` response property for the response status `404`
  - added the new `multiple_sales_orders` enum value to the `errors/items/error_code` response property for the response status `400`
  - added the new `multiple_sales_orders` enum value to the `errors/items/error_code` response property for the response status `404`
  - …2 more
- **2026-10-16** `bf3618aaf7e1`: 2 breaking
  - the response property `items/documents/items/error` became nullable for the status `200`
  - the response property `items/documents/items/external_id` became nullable for the status `200`
- **2026-10-09** `934f5935dbea`: 2 breaking, 14 info
  - the `errors/items/` response's property type changed from no type to `object` for status `400`
  - the `errors/items/` response's property type changed from no type to `object` for status `404`
  - added the optional property `errors/items/field_name` to the response with the `400` status
  - added the optional property `errors/items/field_name` to the response with the `404` status
  - …12 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/shipstation/apis/shipstation-api-v2/changes/v2/shipments/:shipment_id/labels/get.md)

---

[API](https://skmtc.dev/shipstation/apis/shipstation-api-v2.md) - [All operations](https://skmtc.dev/shipstation/apis/shipstation-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/shipstation/apis/shipstation-api-v2/revisions/43d0f3c948ca?raw)
