> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.trysend.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.trysend.com/_mcp/server.

# Track a package

GET https://api.trysend.com/v1/packages/{id}/track

Returns only the package identity, current package status, and tracking steps.

Reference: https://docs.trysend.com/api-reference/send-parcels-api/packages/track-package

## Authentication

- `X-Api-Key` header (required)

## Request

### Path parameters

- `id` (string, required) — Parcel token

## Response

### 200

OK

- `parcel_id` (string, required) — Package token.
- `status` (string, required) — Current package status.
- `tracking_data` (list of object or object, required)
  - object
    - `info` (string, optional)
    - `status` (string, optional)
    - `code` (string, optional)
- `parcel_number` (string, optional, nullable) — Package number, when available.

## Examples

**Response**

```json
{
  "parcel_id": "string",
  "status": "string",
  "tracking_data": [
    {
      "completed_on": "string",
      "status": "complete",
      "step": "string"
    }
  ],
  "parcel_number": "string"
}
```

**SDK Code**

```python
import requests

url = "https://api.trysend.com/v1/packages/PKG123456789/track"

headers = {"X-Api-Key": "<apiKey>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.trysend.com/v1/packages/PKG123456789/track")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```