Shippo Tracking API

Track shipments across carriers

OpenAPI Specification

shippo-tracking-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Shippo Addresses Tracking API
  description: Shippo is a multi-carrier shipping API that enables developers to add complete shipping functionality to their applications. The API supports address validation, carrier rate comparison across USPS, UPS, FedEx, DHL, and 80+ other carriers, label generation, package tracking, returns management, and webhook notifications.
  version: '2018-02-08'
  contact:
    name: Shippo
    url: https://docs.goshippo.com/
    email: support@goshippo.com
  license:
    name: Shippo API Terms
    url: https://goshippo.com/terms-of-use/
  x-date: '2026-05-02'
servers:
- url: https://api.goshippo.com
  description: Shippo API
security:
- ShippoToken: []
tags:
- name: Tracking
  description: Track shipments across carriers
paths:
  /tracks/{Carrier}/{TrackingNumber}:
    get:
      operationId: getTrackingStatus
      summary: Get Tracking Status
      description: Returns the real-time tracking status for a shipment using the carrier code and tracking number. Returns normalized tracking data across all supported carriers.
      tags:
      - Tracking
      parameters:
      - name: Carrier
        in: path
        required: true
        description: Carrier code (e.g. usps, fedex, ups, dhl_express)
        schema:
          type: string
      - name: TrackingNumber
        in: path
        required: true
        description: Tracking number for the shipment
        schema:
          type: string
      responses:
        '200':
          description: Tracking status for the shipment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackingStatus'
  /tracks:
    post:
      operationId: registerTrackingWebhook
      summary: Register Tracking Webhook
      description: Registers a tracking webhook for a shipment to receive real-time tracking updates.
      tags:
      - Tracking
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrackingWebhookRequest'
      responses:
        '201':
          description: Tracking webhook registered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrackingStatus'
components:
  schemas:
    TrackingWebhookRequest:
      type: object
      required:
      - carrier
      - tracking_number
      properties:
        carrier:
          type: string
        tracking_number:
          type: string
        metadata:
          type: string
    TrackingStatus:
      type: object
      properties:
        carrier:
          type: string
        tracking_number:
          type: string
        address_from:
          $ref: '#/components/schemas/Address'
        address_to:
          $ref: '#/components/schemas/Address'
        transaction:
          type: string
        original_eta:
          type: string
          format: date-time
        eta:
          type: string
          format: date-time
        servicelevel:
          type: object
          properties:
            token:
              type: string
            name:
              type: string
        tracking_status:
          type: object
          properties:
            status:
              type: string
              enum:
              - UNKNOWN
              - PRE_TRANSIT
              - TRANSIT
              - DELIVERED
              - RETURNED
              - FAILURE
            status_details:
              type: string
            status_date:
              type: string
              format: date-time
            location:
              type: object
        tracking_history:
          type: array
          items:
            type: object
    Address:
      type: object
      properties:
        object_id:
          type: string
          description: Unique identifier for the address
        is_complete:
          type: boolean
          description: Whether the address is complete and valid
        name:
          type: string
          description: Full name of the recipient
        company:
          type: string
          description: Company name
        street1:
          type: string
          description: First line of the street address
        street2:
          type: string
          description: Second line of the street address
        city:
          type: string
          description: City
        state:
          type: string
          description: State or province
        zip:
          type: string
          description: Postal code
        country:
          type: string
          description: ISO 2-letter country code
        phone:
          type: string
          description: Phone number
        email:
          type: string
          description: Email address
        is_residential:
          type: boolean
          description: Whether the address is residential
        validation_results:
          type: object
          description: Address validation results
        object_created:
          type: string
          format: date-time
        object_updated:
          type: string
          format: date-time
  securitySchemes:
    ShippoToken:
      type: http
      scheme: bearer
      description: Shippo API token (prefix with "ShippoToken ")