Meerkat

Use case · Package tracking

A package tracking API that fires a webhook the moment status changes.

Monitor any courier tracking link — DHL, UPS, FedEx, USPS, DPD, Royal Mail — with one API. Meerkat's agent reads the carrier's page on a schedule, detects state changes, and POSTs structured JSON to your endpoint. No per-carrier SDKs, no polling code, no LLM tool loops to maintain.

Every carrier, one endpoint

Pass a courier_tracking_link in plain text. Meerkat handles the rest, so adding a new carrier is zero code.

Webhook on change only

You hear from us when the state moves — In transit → Out for delivery → Delivered. Quiet otherwise.

Signed and retried

HMAC-SHA256 signatures, exponential backoff, idempotency keys. Same delivery guarantees Stripe uses.

BYOK LLM keys

Bring Anthropic, OpenAI, OpenRouter or Grok. You own the spend and the model choice.

Example request

POST /api/v1/tasks

curl -X POST https://meerkatagents.com/api/v1/tasks \
  -H "Authorization: Bearer mk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "task_type": "recurring",
    "description": "Monitor DHL tracking and report status changes",
    "input_params": {
      "courier_tracking_link": "https://dhl.de/track?id=00340..."
    },
    "frequency": "every 2 hours",
    "output_webhook": "https://your-app.com/hook"
  }'

FAQ

Common questions

Which couriers are supported?

Any courier with a public tracking page. Meerkat reads the page with an LLM agent, so DHL, UPS, FedEx, USPS, Royal Mail, DPD, Australia Post, Aramex and most regional carriers work without per-carrier integrations.

How often does it check?

Any cadence — every 15 minutes, hourly, every 2 hours, or a custom cron. Meerkat only POSTs to your webhook when the status actually changes, so you don't pay for noise.

Do I need to host anything?

No. Use Meerkat Cloud and bring your own LLM key, or self-host the open source server on Render, Fly.io, or Docker — same API either way.

What does the webhook payload look like?

A signed JSON POST with task_id, status (changed / unchanged / error), and a findings object containing courier, state, ETA, and location. HMAC-SHA256 signed and retried with exponential backoff until 2xx.

Ready to ship your first webhook?

Sign up, connect your LLM key in onboarding, and register a task in under five minutes.