Ship24 website screenshot

Ship24

Ship24 is a universal shipment tracking platform that consolidates 1,500+ couriers and marketplaces into a single API, dashboard, and post-purchase customer experience. It is operated as an enterprise tracking aggregator with reported coverage of over a billion shipments tracked, a Shopify app, branded tracking pages, email and SMS delivery notifications, a tracking widget, and an IOSS fiscal intermediary service for EU VAT compliance on inbound parcels. The developer surface is a single REST tracking API delivering normalized status codes and webhook events designed to reduce WISMO ("where is my order?") support load for ecommerce, 3PL, and marketplace operators.

1 APIs 16 Features
TrackingLogisticsShippingCouriersParcelsWebhooksEcommercePostPurchase

APIs

Ship24 Tracking API

The Ship24 Tracking API is a universal package tracking aggregator that abstracts 1,500+ couriers worldwide behind a single REST endpoint. Developers create a Tracker by submitt...

Collections

Features

1,500+ couriers worldwide (USPS, UPS, FedEx, DHL, Royal Mail, La Poste, China Post, Japan Post, India Post, Correios, Yodel, Hermes, GLS, Canada Post, Australia Post, etc.)
Universal tracking REST API at api.ship24.com over HTTPS
Bearer token (API key) authentication issued from the Ship24 dashboard
Automatic courier auto-detection from tracking number patterns
Bulk tracker creation in a single request
Normalized shipment status codes across heterogeneous courier feeds
Webhook delivery of tracking events with signed payloads
Webhook resend / replay endpoint for missed events
Branded customer tracking pages on custom domain (Pro plan and above)
Email and SMS delivery notifications
Tracking widget embeddable in storefronts
Shopify app integration with automated post-purchase workflows
Per-shipment and per-API-call commercial plans
99.9% uptime SLA target
GDPR-compliant data processing
IOSS fiscal intermediary service for EU VAT compliance on cross-border ecommerce parcels

Semantic Vocabularies

Ship24 Context

22 classes · 2 properties

JSON-LD

API Governance Rules

Ship24 API Rules

9 rules · 6 errors 2 warnings 1 info

SPECTRAL

JSON Structure

Ship24 Tracker Structure

0 properties

JSON STRUCTURE

Example Payloads

Resources

🔗
Website
Website
🔗
Documentation
Documentation
🔗
APIReference
APIReference
🚀
GettingStarted
GettingStarted
🔗
Webhooks
Webhooks
🔗
RateLimits
RateLimits
💰
Pricing
Pricing
📝
Signup
Signup
🔗
Login
Login
🔑
Authentication
Authentication
🟢
Status
Status
📰
Blog
Blog
🔗
ContactUs
ContactUs
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
🔗
LinkedIn
LinkedIn
👥
GitHubOrganization
GitHubOrganization
🔗
ShopifyApp
ShopifyApp
🔗
AgentSkills
AgentSkills

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Ship24 Tracking API
  version: 1.0.0
items:
- info:
    name: 📦 Trackers
    type: folder
  items:
  - info:
      name: List existing Trackers
      type: http
    http:
      method: GET
      url: https://api.ship24.com/public/v1/trackers
      headers:
      - name: Authorization
        value: Bearer your_api_key
      params:
      - name: page
        value: '1'
        type: query
        description: The page index, starting from 1.
      - name: limit
        value: '100'
        type: query
        description: The maximum number of trackers returned per page.
      - name: sort
        value: '1'
        type: query
        description: Defines the sorting order of trackers. Use `1` for ascending (`createdAt` oldest first) and `-1` for
          descending (`createdAt` newest first). The default is ascending (`1`) to ensure stable pagination.
    docs: This endpoint return a list of all existing `Trackers`, using page-based pagination.
  - info:
      name: Create a tracker
      type: http
    http:
      method: POST
      url: https://api.ship24.com/public/v1/trackers
      headers:
      - name: Content-Type
        value: application/json; charset=utf-8
      - name: Authorization
        value: Bearer your_api_key
      body:
        type: json
        data: '{}'
    docs: 'This endpoint allows you to create a new `Tracker`, based on the specified information. Once a `Tracker` is created,
      you will be able to receive webhook notifications and/or fetch its tracking result.


      > This endpoint is idempotent, any subsequent calls with the same parameters won''t duplicate `Tracker`. However, providing
      different information in any of the fields will create a new `Tracker`, as it will be considered as a new shipment.'
  - info:
      name: Bulk create trackers
      type: http
    http:
      method: POST
      url: https://api.ship24.com/public/v1/trackers/bulk
      headers:
      - name: Content-Type
        value: application/json; charset=utf-8
      - name: Authorization
        value: Bearer your_api_key
      body:
        type: json
        data: '{}'
    docs: 'This endpoint allows you to create up to 100 new `Trackers` in a single operation, based on the specified information.
      Once the `Trackers` are created, you will be able to receive webhook notifications and/or fetch their tracking results.


      > While tracker creation is idempotent, this endpoint itself is not. Any duplicate within the request or any tracker
      parameters matching an existing tracker will not create a duplicate `Tracker`. However, providing different information
      in any of the fields wi'
  - info:
      name: Create a tracker and get tracking results
      type: http
    http:
      method: POST
      url: https://api.ship24.com/public/v1/trackers/track
      headers:
      - name: Content-Type
        value: application/json; charset=utf-8
      - name: Authorization
        value: Bearer your_api_key
      body:
        type: json
        data: '{}'
    docs: 'This endpoint creates a new `Tracker` on the specified tracking number , if it does not exist, and returns the
      tracking results directly. We advise using this endpoint if you are not interested in receiving webhook notifications
      and just want to fetch tracking results. This way, you can always call this unified endpoint to get tracking results,
      without worrying about `Tracker` creation and management.



      > 🛑 During the very first call for a tracking number, this endpoint will create a `Tracker` '
  - info:
      name: Get an existing tracker
      type: http
    http:
      method: GET
      url: https://api.ship24.com/public/v1/trackers/:trackerId
      headers:
      - name: Authorization
        value: Bearer your_api_key
      params:
      - name: trackerId
        value: 26148317-7502-d3ac-44a9-546d240ac0dd
        type: path
        description: '**Required** Id of the tracker, provided by Ship24 at creation. `clientTrackerId` can also be used in
          this field by employing the `searchBy` parameter.'
      - name: searchBy
        value: trackerId
        type: query
        description: Parameter allowing to search either by `trackerId`or `clientTrackerId`. Default behavior is by `trackerId`.
    docs: This endpoint return an existing `Tracker` for a given `trackerId`.
  - info:
      name: Update an existing tracker
      type: http
    http:
      method: PATCH
      url: https://api.ship24.com/public/v1/trackers/:trackerId
      headers:
      - name: Content-Type
        value: application/json; charset=utf-8
      - name: Authorization
        value: Bearer your_api_key
      params:
      - name: trackerId
        value: 26148317-7502-d3ac-44a9-546d240ac0dd
        type: path
        description: '**Required** Id of the tracker, provided by Ship24 at creation. `clientTrackerId` can also be used in
          this field by employing the `searchBy` parameter.'
      - name: searchBy
        value: trackerId
        type: query
        description: Parameter allowing to search either by `trackerId`or `clientTrackerId`. Default behavior is by `trackerId`.
      body:
        type: json
        data: '{}'
    docs: "This endpoint allows to modify an existing `Tracker` matching with the given `trackerId`.  \n\n> Once the Tracker\
      \ has gathered shipment tracking information, certain fields related to the shipment data cannot be modified. These\
      \ include: \n> - `courierCode` \n> - `originCountryCode` \n> - `destinationCountryCode` \n> - `shippingDate`"
  - info:
      name: Get tracking results for existing trackers by tracking number
      type: http
    http:
      method: GET
      url: https://api.ship24.com/public/v1/trackers/search/:trackingNumber/results
      headers:
      - name: Authorization
        value: Bearer your_api_key
      params:
      - name: trackingNumber
        value: '9400115901047177598206'
        type: path
        description: '**Required** Tracking number of the parcel.'
    docs: "This endpoint will return the `tracking` result corresponding to the tracking number provided as a parameter. \n\
      \nThe `tracking` object is detailed in the [SCHEMAS](/schemas/tracking) section. \n\nUnlike the `/v1/trackers/track`\
      \ endpoint, a **`Tracker`** **must first be created on this tracking number before using this endpoint.** As a tracking\
      \ number is not unique, the endpoint may return multiple `trackings` associated with different `Trackers`."
  - info:
      name: Get tracking results for an existing tracker
      type: http
    http:
      method: GET
      url: https://api.ship24.com/public/v1/trackers/:trackerId/results
      headers:
      - name: Authorization
        value: Bearer your_api_key
      params:
      - name: trackerId
        value: 26148317-7502-d3ac-44a9-546d240ac0dd
        type: path
        description: '**Required** Id of the tracker, provided by Ship24 at creation. `clientTrackerId` can also be used in
          this field by employing the `searchBy` parameter.'
      - name: searchBy
        value: trackerId
        type: query
        description: Parameter allowing to search either by `trackerId`or `clientTrackerId`. Default behavior is by `trackerId`.
    docs: "This endpoint return the `Tracking` results of an existing `Tracker` matching with the given trackerId. As trackerId\
      \ are unique, the `Trackings` array will always have only one item. \n\nThe `tracking` object is detailed in the [SCHEMAS](/schemas/tracking)\
      \ section.\n\nUnlike the `/v1/trackers/track` endpoint, a **`Tracker`** **must first be created on this tracking number\
      \ before using this endpoint.** As a tracking number is not unique, the endpoint may return multiple `trackings` associated\
      \ with di"
  - info:
      name: Resend webhooks of an existing tracker
      type: http
    http:
      method: POST
      url: https://api.ship24.com/public/v1/trackers/:trackerId/webhook-events/resend
      headers:
      - name: Authorization
        value: Bearer your_api_key
      params:
      - name: trackerId
        value: 26148317-7502-d3ac-44a9-546d240ac0dd
        type: path
        description: '**Required** Id of the tracker, provided by Ship24 at creation. `clientTrackerId` can also be used in
          this field by employing the `searchBy` parameter.'
      - name: searchBy
        value: trackerId
        type: query
        description: Parameter allowing to search either by `trackerId`or `clientTrackerId`. Default behavior is by `trackerId`.
    docs: "This endpoint allows to resend all webhook messages of an existing tracker. \n\nThis can be useful in case you\
      \ missed some webhook messages or if you need to reprocess them for any reason."
- info:
    name: 🚚 Couriers
    type: folder
  items:
  - info:
      name: Get all couriers
      type: http
    http:
      method: GET
      url: https://api.ship24.com/public/v1/couriers
      headers:
      - name: Authorization
        value: Bearer your_api_key
    docs: This endpoint will return the list of all couriers supported by Ship24, identified by their `courierCode`.
- info:
    name: ➕ API for per-call plans
    type: folder
  items:
  - info:
      name: Get tracking results by tracking number
      type: http
    http:
      method: POST
      url: https://api.ship24.com/public/v1/tracking/search
      headers:
      - name: Content-Type
        value: application/json; charset=utf-8
      - name: Authorization
        value: Bearer your_api_key
      body:
        type: json
        data: '{}'
    docs: "This endpoint will return the `tracking` corresponding to the tracking number provided as a parameter. \n\nThe\
      \ `tracking` object is detailed in the [SCHEMAS](/schemas/tracking) section.\n\nFor better accuracy, we strongly advise\
      \ to provide extra information such as the origin country, destination postcode & country, and the shipping date.\n\n\
      > \U0001F6D1 You need an active \"Per-call\" subscription to use this endpoint. Our standard \"Per-shipment\" product\
      \ & plans remain the best choice as it offers more feature"
bundled: true