> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.ship24.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Getting Started with the Ship24 Tracking API

### Introduction

The Ship24 Tracking API lets you track shipments from inside your own system, across more than 2,500 couriers, without integrating each courier individually.

This article covers what you need before you write any code and how the pieces fit together. For endpoint specifications and code examples, see the [Ship24 API documentation](https://docs.ship24.com/).

### In this article

* [What you need first](#3-what-you-need-first)
* [Get your API key](#3-get-your-api-key)
* [Choose how you want to track](#3-choose-how-you-want-to-track)
* [Make your first call](#3-make-your-first-call)
* [Where to go next](#3-where-to-go-next)

### What you need first

A plan. The Tracking API requires a subscription, and there is a free plan you can use while you integrate and test. [Choose a plan in your dashboard](https://dashboard.ship24.com/onboarding), or see [Ship24 pricing and plans explained](https://help.ship24.com/en/article/ship24-pricing-and-plans-explained-425d9d/) to work out which one fits.

|| The Tracking API comes in two products that are billed differently, one per shipment and one per call. They use different endpoints, so confirm which you are subscribed to before you start. The per shipment product is the one most integrations want. See [understanding your API usage and quota](https://help.ship24.com/en/article/understanding-your-api-usage-and-quota-1crxjei/) for how each is counted.

### Get your API key

Your keys live in your dashboard under [Integrations, API keys](https://dashboard.ship24.com/integrations/api-keys). A key named **Default** is created for you when you subscribe.

You can hold up to 20 active keys on one account, which is useful for separating environments or rotating a key without downtime.

Authenticate every request with an `Authorization` header:

```
Authorization: Bearer your_api_key
```

Keys begin with `apik_`. Do not forget the `Bearer` prefix.

||| Your API key can create trackers and consume your quota. Treat it like a password. Never commit it to a repository, never put it in client-side code, and never paste it into a support conversation or a screenshot.

### Choose how you want to track

There are two ways to work, and picking the right one early saves rewriting later.

**Create a tracker and let Ship24 follow the shipment.** You register a shipment once, and Ship24 keeps checking it until delivery. You then either receive updates pushed to you by webhook, or fetch results when you want them. This is the efficient option for anything ongoing, and it is what the per shipment plans are built around. See [setting up webhooks for the Tracking API](https://help.ship24.com/en/article/setting-up-webhooks-for-the-tracking-api-1iaiqes/).

**Look up results directly.** A single call creates a tracker and returns tracking results in the response. Useful when you want an answer immediately and do not need to follow the shipment over time.

| One tracker equals one shipment from your quota, however long the parcel takes and however many events it generates. Creating a tracker twice for the same tracking number does not charge you twice, since the call is idempotent.

### Make your first call

You do not need real shipments to start. Ship24 publishes a [list of sample tracking numbers](https://files.ship24.com/docs/s24-tracking-numbers-sample.txt), plus [sample numbers that return specific statuses](https://docs.ship24.com/status#ship24-sample-tracking-numbers) so you can see how each delivery state behaves.

||| When testing with sample tracking numbers, leave optional fields such as destination country, post code and shipping date empty. Filling them with invented values makes them contradict the real shipment, and you will get no results.

The quality of what you get back depends heavily on what you send. See [how to create a good shipment tracker](https://help.ship24.com/en/article/how-to-create-a-good-shipment-tracker-fa7b2q/) before you build your request, because the same rules apply through the API as through the dashboard.

If a call fails or comes back empty, see [troubleshooting the Tracking API](https://help.ship24.com/en/article/troubleshooting-the-tracking-api-1wsnop6/).

### Where to go next

* [Setting up webhooks](https://help.ship24.com/en/article/setting-up-webhooks-for-the-tracking-api-1iaiqes/) to receive updates as they happen rather than polling
* [Understanding your API usage and quota](https://help.ship24.com/en/article/understanding-your-api-usage-and-quota-1crxjei/) for how tracking is counted and billed
* [Common scenarios](https://docs.ship24.com/common-scenarios) shows the standard integration patterns end to end
* [Trackers](https://docs.ship24.com/trackers) explains identifiers and how to match results back to your own records
* [Node.js SDK](https://docs.ship24.com/sdks/node) if you would rather not call the API directly
* [Integrate with AI](https://docs.ship24.com/integrate-with-ai) if you want an AI assistant to build the integration for you
* [API reference](https://docs.ship24.com/tracking-api-reference/) for the specification of every endpoint

Once you are making calls, [understanding shipment delivery statuses](https://help.ship24.com/en/article/understanding-shipment-delivery-statuses-1rikrd6/) explains what comes back.