---
title: "Add a package tracker"
method: POST
path: "/v1/trackers"
tags: ["Trackers"]
---

# Add a package tracker

`POST /v1/trackers`

This API creates or retrieves (if existent) a tracking status object containing the
details and events of a shipping in progress.

## Query parameters

- `hub` string
- `pending_pickup` boolean

## Request body

- TrackingData
  - `tracking_number` string, required — The package tracking number
  - `carrier_name` 'allied_express' | 'allied_express_local' | 'amazon_shipping' | 'aramex' | 'asendia_us' | 'australiapost' | 'boxknight' | 'bpost' | 'canadapost' | 'canpar' | 'chronopost' | 'colissimo' | 'dhl_express' | 'dhl_parcel_de' | 'dhl_poland' | 'dhl_universal' | 'dicom' | 'dpd' | 'dpdhl' | 'fedex' | 'fedex_ws' | 'generic' | 'geodis' | 'hay_post' | 'laposte' | 'locate2u' | 'nationex' | 'purolator' | 'roadie' | 'royalmail' | 'seko' | 'sendle' | 'tge' | 'tnt' | 'ups' | 'usps' | 'usps_international' | 'usps_wt' | 'usps_wt_international' | 'zoom2u', required — The tracking carrier
  - `account_number` string, nullable — The shipper account number
  - `reference` string, nullable — The shipment reference
  - `info` TrackingInfo
    - `carrier_tracking_link` string, nullable — The carrier tracking link
    - `customer_name` string, nullable — The customer name
    - `expected_delivery` string, nullable — The expected delivery date
    - `note` string, nullable — A tracking note
    - `order_date` string, nullable — The package order date
    - `order_id` string, nullable — The package order id or number
    - `package_weight` string, nullable — The package weight
    - `package_weight_unit` string, nullable — The package weight unit
    - `shipment_package_count` string, nullable — The package count
    - `shipment_pickup_date` string, nullable — The shipment pickup date
    - `shipment_delivery_date` string, nullable — The shipment delivery date
    - `shipment_service` string, nullable — The shipment service
    - `shipment_origin_country` string, nullable — The shipment origin country
    - `shipment_origin_postal_code` string, nullable — The shipment origin postal code
    - `shipment_destination_country` string, nullable — The shipment destination country
    - `shipment_destination_postal_code` string, nullable — The shipment destination postal code
    - `shipping_date` string, nullable — The shipping date
    - `signed_by` string, nullable — The person who signed for the package
    - `source` string, nullable — The tracker source
  - `metadata` object — The carrier user metadata.

## Response `200`

- TrackingStatus
  - `id` string — A unique identifier
  - `carrier_name` string, required — The tracking carrier
  - `carrier_id` string, required — The tracking carrier configured identifier
  - `tracking_number` string, required — The shipment tracking number
  - `info` TrackingInfo
    - `carrier_tracking_link` string, nullable — The carrier tracking link
    - `customer_name` string, nullable — The customer name
    - `expected_delivery` string, nullable — The expected delivery date
    - `note` string, nullable — A tracking note
    - `order_date` string, nullable — The package order date
    - `order_id` string, nullable — The package order id or number
    - `package_weight` string, nullable — The package weight
    - `package_weight_unit` string, nullable — The package weight unit
    - `shipment_package_count` string, nullable — The package count
    - `shipment_pickup_date` string, nullable — The shipment pickup date
    - `shipment_delivery_date` string, nullable — The shipment delivery date
    - `shipment_service` string, nullable — The shipment service
    - `shipment_origin_country` string, nullable — The shipment origin country
    - `shipment_origin_postal_code` string, nullable — The shipment origin postal code
    - `shipment_destination_country` string, nullable — The shipment destination country
    - `shipment_destination_postal_code` string, nullable — The shipment destination postal code
    - `shipping_date` string, nullable — The shipping date
    - `signed_by` string, nullable — The person who signed for the package
    - `source` string, nullable — The tracker source
  - `events` TrackingEvent[], nullable — The tracking details events
    - `date` string — The tracking event's date. Format: `YYYY-MM-DD`
    - `description` string — The tracking event's description
    - `location` string — The tracking event's location
    - `code` string, nullable — The tracking event's code
    - `time` string, nullable — The tracking event's time. Format: `HH:MM AM/PM`
    - `latitude` number, double, nullable — The tracking event's latitude.
    - `longitude` number, double, nullable — The tracking event's longitude.
  - `delivered` boolean — Specified whether the related shipment was delivered
  - `test_mode` boolean, required — Specified whether the object was created with a carrier in test mode
  - `status` 'pending' | 'unknown' | 'on_hold' | 'delivered' | 'in_transit' | 'delivery_delayed' | 'out_for_delivery' | 'ready_for_pickup' | 'delivery_failed' — The current tracking status
  - `estimated_delivery` string — The delivery estimated date
  - `meta` object, nullable — provider specific metadata
  - `object_type` string — Specifies the object type
  - `metadata` object — User metadata for the tracker
  - `messages` Message[] — The list of note or warning messages
    - `message` string — The error or warning message
    - `code` string — The message code
    - `details` object — any additional details
    - `carrier_name` string — The targeted carrier
    - `carrier_id` string — The targeted carrier name (unique identifier)
  - `delivery_image_url` string, uri, nullable — The shipment invoice URL
  - `signature_image_url` string, uri, nullable — The shipment invoice URL

## Other responses

- `400`
- `424`
- `500`

---

[API](https://skmtc.dev/karrio/apis/karrio-api.md) · [All operations](https://skmtc.dev/karrio/apis/karrio-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/karrio/karrio-api/revisions/76ab3b7c3a61/schema)
