ship24

Track parcels worldwide via Ship24 API. Create trackers, get tracking results, monitor delivery status for packages from DHL, FedEx, USPS, DPD, and 1500+ carriers. Use when tracking packages, monitoring deliveries, or checking shipment status.

16 stars

Best use case

ship24 is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Track parcels worldwide via Ship24 API. Create trackers, get tracking results, monitor delivery status for packages from DHL, FedEx, USPS, DPD, and 1500+ carriers. Use when tracking packages, monitoring deliveries, or checking shipment status.

Teams using ship24 should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ship24/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/development/ship24/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ship24/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ship24 Compares

Feature / Agentship24Standard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Track parcels worldwide via Ship24 API. Create trackers, get tracking results, monitor delivery status for packages from DHL, FedEx, USPS, DPD, and 1500+ carriers. Use when tracking packages, monitoring deliveries, or checking shipment status.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Ship24 Tracking Skill

Track parcels worldwide using the Ship24 API. Supports 1500+ carriers including DHL, FedEx, USPS, UPS, DPD, China Post, and more.

## Setup

**Get API Key:** https://dashboard.ship24.com/integrations/api-keys

**Store credentials** in `~/.config/ship24/credentials.json`:
```json
{
  "api_key": "apik_xxx"
}
```

Or use environment variable: `SHIP24_API_KEY`

## API Base

```
https://api.ship24.com/public/v1
```

**Auth Header:** `Authorization: Bearer YOUR_API_KEY`

---

## Quick Reference

### Create a Tracker

```bash
curl -X POST "https://api.ship24.com/public/v1/trackers" \
  -H "Authorization: Bearer $SHIP24_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "trackingNumber": "1234567890",
    "courierCode": ["dpd-de"],
    "destinationCountryCode": "DE"
  }'
```

**Response:**
```json
{
  "data": {
    "tracker": {
      "trackerId": "abc-123-def",
      "trackingNumber": "1234567890",
      "isSubscribed": true,
      "isTracked": true,
      "createdAt": "2026-01-15T10:00:00.000Z"
    }
  }
}
```

### Get Tracking Results

```bash
curl "https://api.ship24.com/public/v1/trackers/$TRACKER_ID/results" \
  -H "Authorization: Bearer $SHIP24_API_KEY"
```

**Response:**
```json
{
  "data": {
    "trackings": [{
      "tracker": { "trackerId": "abc-123" },
      "shipment": {
        "statusCode": "in_transit",
        "statusMilestone": "in_transit",
        "originCountryCode": "CN",
        "destinationCountryCode": "DE"
      },
      "events": [{
        "status": "Parcel is in transit",
        "occurrenceDatetime": "2026-01-16T14:30:00",
        "location": "Frankfurt, DE",
        "statusCode": "in_transit"
      }]
    }]
  }
}
```

### Create Tracker and Get Results (One Call)

```bash
curl -X POST "https://api.ship24.com/public/v1/trackers/track" \
  -H "Authorization: Bearer $SHIP24_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "trackingNumber": "1234567890"
  }'
```

### List All Trackers

```bash
curl "https://api.ship24.com/public/v1/trackers?page=1&limit=25" \
  -H "Authorization: Bearer $SHIP24_API_KEY"
```

### Search by Tracking Number (No Tracker)

```bash
curl -X POST "https://api.ship24.com/public/v1/tracking/search" \
  -H "Authorization: Bearer $SHIP24_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"trackingNumber": "1234567890"}'
```

---

## Status Codes

| Milestone | Description |
|-----------|-------------|
| `pending` | Tracking created, no events yet |
| `info_received` | Carrier received shipment info |
| `in_transit` | Package in transit |
| `out_for_delivery` | Out for delivery today |
| `delivered` | Successfully delivered |
| `failed_attempt` | Delivery attempt failed |
| `available_for_pickup` | Ready for pickup |
| `exception` | Problem with delivery |
| `expired` | Tracking expired |

**Status Categories:** `pending`, `info_received`, `in_transit`, `out_for_delivery`, `delivery`, `exception`

---

## Common Courier Codes

| Carrier | Code |
|---------|------|
| DHL Express | `dhl` |
| DHL Germany | `dhl-de` |
| DPD Germany | `dpd-de` |
| DPD UK | `dpd-uk` |
| FedEx | `fedex` |
| UPS | `ups` |
| USPS | `us-post` |
| China Post | `china-post` |
| Deutsche Post | `deutsche-post` |
| Hermes Germany | `hermes-de` |
| GLS | `gls` |

Full list: `GET /public/v1/couriers`

---

## Heartbeat Integration

Track deliveries in your heartbeat routine. Store state in your memory file:

```json
{
  "deliveries": [
    {
      "tracking": "1234567890",
      "carrier": "DPD",
      "description": "New laptop",
      "ship24TrackerId": "abc-123-def",
      "lastStatus": "in_transit",
      "lastCheck": "2026-01-16T10:00:00Z"
    }
  ],
  "ship24ApiKey": "apik_xxx"
}
```

**Check routine:**
1. Loop through active deliveries
2. Fetch results for each trackerId
3. Compare status with lastStatus
4. Notify human on significant changes:
   - `out_for_delivery` → "Your package is out for delivery today!"
   - `delivered` → "Package delivered!" + remove from list
   - `exception` → "Delivery problem with [description]"
5. Update lastStatus and lastCheck

---

## Adding a Delivery

When human says "track this package: ABC123":

1. Create tracker:
```bash
curl -X POST "https://api.ship24.com/public/v1/trackers" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"trackingNumber": "ABC123"}'
```

2. Save to memory:
```json
{
  "tracking": "ABC123",
  "ship24TrackerId": "<trackerId from response>",
  "description": "Package from human",
  "lastStatus": "pending",
  "added": "2026-01-16"
}
```

3. Confirm: "Added tracking for ABC123. I'll let you know when there are updates."

---

## Tips

- **Auto-detect carrier:** Ship24 usually detects the carrier automatically. Only specify `courierCode` if you know it.
- **Destination country:** Helps with detection. Use ISO 2-letter codes (DE, US, CN).
- **Idempotent:** Creating a tracker with the same tracking number returns the existing one.
- **Rate limits:** Check your plan limits at dashboard.ship24.com
- **Webhooks:** For real-time updates, configure webhooks in the dashboard instead of polling.

---

## Error Handling

| Code | Meaning |
|------|---------|
| 401 | Invalid API key |
| 404 | Tracker not found |
| 429 | Rate limit exceeded |
| 422 | Invalid tracking number format |

---

## Links

- **Dashboard:** https://dashboard.ship24.com
- **API Docs:** https://docs.ship24.com
- **OpenAPI Spec:** https://docs.ship24.com/assets/openapi/ship24-tracking-api.yaml

Related Skills

bgo

10
from diegosouzapw/awesome-omni-skill

Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.

Coding & Development

solidstart-api-routes

16
from diegosouzapw/awesome-omni-skill

SolidStart API routes: export GET/POST/PATCH/DELETE functions, handle APIEvent with request/params/fetch, GraphQL and tRPC integration, session management.

solidjs

16
from diegosouzapw/awesome-omni-skill

Builds UIs with SolidJS including signals, effects, memos, and fine-grained reactivity. Use when creating high-performance reactive applications, building without virtual DOM, or needing granular updates.

solid-generic

16
from diegosouzapw/awesome-omni-skill

SOLID principles for generic TypeScript, Bun, and Node.js projects. Files < 100 lines, interfaces separated, JSDoc mandatory. Use for CLI tools, libraries, scripts, hooks, and non-framework TypeScript code.

solid-core-rendering

16
from diegosouzapw/awesome-omni-skill

SolidJS rendering: render for client apps, hydrate for SSR, renderToString for server rendering, renderToStream for streaming, isServer checks.

sojustack-best-practices

16
from diegosouzapw/awesome-omni-skill

Best-practice guidance for the SojuStack monorepo (NestJS + Drizzle + Better Auth + TanStack Start). Use when editing files in apps/api or apps/web, designing routes, query/form patterns, auth/transaction flows, or implementing cross-stack features.

software-localisation

16
from diegosouzapw/awesome-omni-skill

Production-grade i18n/l10n patterns for React, Vue, Angular, Next.js, and Node.js. Covers library selection (i18next/react-i18next, FormatJS/react-intl, next-intl, vue-i18n, @angular/localize, Lingui, typesafe-i18n), ICU message format, RTL support, locale routing/detection, TMS integration, string extraction, and CI/CD translation workflows. Use when setting up or debugging localisation in a codebase.

software-frontend

16
from diegosouzapw/awesome-omni-skill

Production-grade frontend development with Next.js 16 App Router, TypeScript 5.9+ strict mode, Tailwind CSS v4, shadcn/ui, React 19.2 Server Components, state management (Zustand/Recoil), performance optimization (Turbopack stable, ISR/SSR/SSG), and accessibility best practices. Includes TanStack Query for server-state, Vitest for testing, and modern React patterns.

software-engineering-lead

16
from diegosouzapw/awesome-omni-skill

Expert software engineering lead who translates product requirements into comprehensive engineering plans using GitHub Projects. Reviews PRDs and user stories, identifies gaps and conflicts, pushes back constructively on poor requirements, applies software engineering best practices, creates detailed technical plans with tasks and milestones, and ensures production-ready architecture. Use when translating product specs into actionable development plans, validating requirements, or designing system architecture.

software-crypto-web3

16
from diegosouzapw/awesome-omni-skill

Use when building blockchain applications or smart contracts across EVM (Solidity), Solana (Anchor/Rust), Cosmos (CosmWasm), and TON, including security/audit workflows, fuzz/invariant testing, upgrades, custody/signing, and backend integration (RPC, indexers, webhooks).

software-code-review

16
from diegosouzapw/awesome-omni-skill

Use when reviewing code, pull requests, or diffs. Provides patterns, checklists, and templates for systematic code review with a focus on correctness, security, readability, performance, and maintainability.

software-architecture

16
from diegosouzapw/awesome-omni-skill

Design scalable software systems with proven architectural patterns (MVC, microservices, event-driven), SOLID principles, system design trade-offs, and architectural decision records (ADRs).