> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goshippo.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Shippo is a multi-carrier shipping API. For agent integrations that execute shipping operations (rates, labels, tracking, address validation, customs), connect the hosted Shippo MCP server at https://mcp.shippo.com (per-user OAuth; setup at /guides/mcp-server). To search and read this documentation from an agent, a docs search MCP is available at https://docs.goshippo.com/mcp. Shipping workflow knowledge (agent skills and a knowledge pack) is published at https://github.com/goshippo/ai. For REST integrations start at /guides/api-quickstart; test mode uses shippo_test_ API keys.

# List label-purchase requests

> Lists your label-purchase requests, newest first. Read-only. Returns a page of summaries plus a `next` link (an opaque cursor); `next` is `null` on the last page.

The `shipment_id`, `tracking_number`, `status`, and `dry_run` filters are AND-combined, and are preserved across pages by the `next` link.



## OpenAPI

````yaml /api-reference/automationsapi/openapi.yaml get /automations/labels
openapi: 3.1.0
info:
  title: Automations API
  description: >-
    Buy the right label in one call.


    Shipping a parcel through the Shippo API takes four steps today: create a
    shipment, fetch rates, compare them against your own logic, then buy the
    label. Automations collapses that into one request. You send the shipment,
    Shippo applies your rules, selects the rate, and buys the label.


    ## What the rules are


    In this beta, every account is provisioned with exactly one rule, named
    `default`, which selects the lowest-cost eligible rate for the shipment. A
    few USPS service levels whose eligibility Automations can't check, such as
    Media Mail, are never selected; see [Service levels the rule never
    selects](https://docs.goshippo.com/automations/automations#service-levels-the-rule-never-selects).
    The rule is created for you the first time you call the API. There is
    nothing to configure, and there is no endpoint for authoring or editing
    rules yet. Customer-defined rules are planned for a later release.


    ## Decision transparency


    Every request keeps a decision record. `GET
    /automations/labels/{request_id}/decision` returns the rule that matched,
    the rate selected, the facts the engine evaluated, and the full rule trace.
    Use it to answer "why this carrier, why this price" without building and
    instrumenting your own rate-comparison logic.


    ## Beta status


    These endpoints are in beta. Request and response shapes may change without
    the notice period that applies to generally available Shippo endpoints, and
    they are not yet covered by the `SHIPPO-API-VERSION` header. Breaking
    changes are announced to enrolled accounts before they ship. Pin nothing in
    production that you cannot redeploy.
  contact:
    name: Shippo API Support
    url: https://support.goshippo.com/
  version: beta
servers:
  - url: https://api.goshippo.com
    description: Shippo API
security:
  - ShippoToken: []
tags:
  - name: Automations
    description: >-
      Rules-based, single-call label purchase. Create a request, list requests,
      poll a request's status, and read the decision behind a selected rate.
externalDocs:
  description: Shippo API reference, including the full shipment field list
  url: https://docs.goshippo.com/api-reference/shipments/create-a-new-shipment
paths:
  /automations/labels:
    get:
      tags:
        - Automations
      summary: List label-purchase requests
      description: >-
        Lists your label-purchase requests, newest first. Read-only. Returns a
        page of summaries plus a `next` link (an opaque cursor); `next` is
        `null` on the last page.


        The `shipment_id`, `tracking_number`, `status`, and `dry_run` filters
        are AND-combined, and are preserved across pages by the `next` link.
      operationId: listAutomationsLabels
      parameters:
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Cursor
          description: >-
            Opaque next-page token; use the `next` link from a prior response
            verbatim.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 25
            title: Limit
          description: Page size, 1–100 (default 25).
        - name: shipment_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Shipment Id
          description: Filter to requests with this shipment_id.
        - name: tracking_number
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Tracking Number
          description: Filter to requests with this tracking number.
        - name: status
          in: query
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/AutomationsLabelStatus'
              - type: 'null'
            title: Status
          description: >-
            Filter by status: processing, purchased, dry_run_completed,
            no_match, or failed.
        - name: dry_run
          in: query
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
            title: Dry Run
          description: Filter to dry-run (true) or live (false) requests.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AutomationsLabelListResponse'
        '401':
          description: >-
            Missing or invalid API token. The `detail` message depends on the
            problem; the example is the response when no token is sent.
          content:
            application/json:
              example:
                detail: Authentication credentials were not provided.
              schema:
                $ref: '#/components/schemas/DetailResponse'
        '403':
          description: This account does not have access to Automations.
          content:
            application/json:
              example:
                detail: Automations is not available for this account.
              schema:
                $ref: '#/components/schemas/DetailResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '503':
          description: Automations is temporarily unavailable. Retry later.
          content:
            application/json:
              example:
                detail: Automations is temporarily unavailable.
              schema:
                $ref: '#/components/schemas/DetailResponse'
components:
  schemas:
    AutomationsLabelStatus:
      type: string
      enum:
        - processing
        - purchased
        - dry_run_completed
        - no_match
        - failed
      title: AutomationsLabelStatus
    AutomationsLabelListResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/AutomationsLabelSummary'
          type: array
          title: Results
        next:
          anyOf:
            - type: string
            - type: 'null'
          title: Next
      type: object
      required:
        - results
        - next
      title: AutomationsLabelListResponse
      description: >-
        A page of request summaries, newest first. `next` links to the following
        page with your filters and page size already applied; it is `null` on
        the last page.
    DetailResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable explanation of why the request could not be served.
      type: object
      required:
        - detail
      title: DetailResponse
      description: An error with a single human-readable `detail` message.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    AutomationsLabelSummary:
      properties:
        request_id:
          type: string
          format: uuid
          title: Request Id
        status:
          $ref: '#/components/schemas/AutomationsLabelStatus'
          description: Current status of the request.
        shipment_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Shipment Id
        tracking_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Tracking Number
        dry_run:
          type: boolean
          title: Dry Run
          description: Whether this request evaluates selection without purchasing a label.
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
        - request_id
        - status
        - shipment_id
        - tracking_number
        - dry_run
        - created_at
      title: AutomationsLabelSummary
      description: >-
        One request in the `GET /automations/labels` list. Every summary has the
        same fields whatever its status; a field with no value yet is `null`
        rather than omitted. For the full outcome, get the request by
        `request_id`.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ShippoToken:
      type: apiKey
      in: header
      name: Authorization
      x-token-prefix: ShippoToken
      x-token-format: ShippoToken {token}
      x-default: 'ShippoToken '
      description: 'Shippo API token, sent as `Authorization: ShippoToken <API_TOKEN>`.'

````

## Related topics

- [Automations](/automations/automations.md)
- [Install the Shippo Shipping Elements SDK](/shipping-elements/install.md)
- [Bulk labels](/shipping-elements/bulk.md)
