Live Courier tracking for Indian businesses

Register the parcel once. Your systems hear everything after that.

We watch the courier for you and push every status change to your endpoint as a signed webhook. Your customer gets the message from your number, in your words, because you are the one who sends it.

  • One credit per parcel, not per message
  • Unlimited numbers per parcel
  • GST invoices
  • Cancel any time

1,673 couriers

Indian and international, detected from the tracking number as you type, so nobody at the packing table has to know whether a number belongs to Delhivery or Blue Dart.

How it works

Three steps, and you only do the first one.

  1. 1

    Register the parcel

    Tracking number, the courier we detect from that number as you type, plus the phone numbers this parcel concerns. Tick which of the five moments you want forwarded. That is the whole form.

    About twenty seconds

  2. 2

    We watch it

    Continuously, until it is delivered. Every courier scan lands in your account with its location and time, so the full history is there when somebody asks.

    Nothing for you to poll

  3. 3

    Your systems get told

    A signed HTTPS request to your endpoint, carrying the parcel, the recipient and your account state. What you send your customer, and from which number, stays entirely yours.

    HMAC-SHA256 signed

The contract

Five moments. You pick them per parcel.

Chosen per parcel rather than per account, so a cash-on-delivery order and a prepaid one need not be treated the same. Each fires at most once. These are the exact badges you will see on a parcel row.

Shipment created

The courier has the consignment number on file. Good for a "we've booked it" message.

SHIPMENT_CREATED

In transit

It is moving. Once, on first movement, not on every hub scan.

IN_TRANSIT

Out for delivery

On the van today. The one message that reliably stops a "where is it" call.

OUT_FOR_DELIVERY

Delivered

Handed over. The natural moment to ask for a review or a reorder.

DELIVERED

Exception / delivery failed

A failed attempt, an address problem, an RTO. The one you want to hear about first.

EXCEPTION

For your developer

One POST. Signed, retried, logged.

The payload is a published interface. Adding a key is safe, renaming one never happens quietly. Everything an integration needs about the parcel, the recipient and the account arrives in the same request, so nothing has to call back for it.

  • HMAC-SHA256 over the raw body

    With a timestamp header, so you can reject anything more than 5 minutes old.

  • Retried 6 times over roughly a day

    Every attempt is listed with its status code and response body. Retry any of them by hand.

  • One correlation id, end to end

    From the courier scan to the request that left us, in the logs and on your Webhook deliveries screen.

  • A test payload you can safely ignore

    It carries a test flag, so a connection check never messages a real person.

POST your endpoint · application/json
{
  "delivery_id": "9f2c1a4e-3b7d-4c21-98a1-5f0e2d7c1b93",
  "event": "OUT_FOR_DELIVERY",
  "occurred_at": "2026-08-24T09:14:00+05:30",
  "parcel": {
    "tracking_number": "1Z999AA10123456784",
    "courier_name": "Blue Dart",
    "status_description": "The package is out for delivery",
    "last_location": "Surat, GJ",
    "estimated_delivery": "2026-08-24"
  },
  "recipient": {
    "name": "Priya Shah",
    "phones": ["+919876543210"]
  },
  "account": {
    "subscription": { "status": "active" },
    "credits": { "available": 37 }
  }
}

Pricing

You are charged for parcels, not for activity

A parcel that takes eleven days and forty scans costs the same as one delivered overnight. GST is stated separately, never hidden inside one figure.

Starts at

₹750.00 a month

plus 18% GST, so ₹885.00 is the figure that leaves your bank

25 parcels a month on the 25 Tracking plan, all five events, unlimited numbers on each.

See all plans

One credit, one parcel

Not per message and not per recipient. Add as many phone numbers to a parcel as you like; it costs nothing extra, and neither does a parcel that generates twenty scans instead of three.

Credits back on typos

A credit is spent only when the courier network accepts the registration, and if no courier ever scans the parcel it returns to your balance automatically after 7 days. A wrong digit should not cost you anything.

GST invoices, every time

Base and tax are stated separately on the invoice, so a buyer claiming input credit does not have to email to find out what the split was.

Decisions, not features

Why it is built this way

We do not send the messages, and that is the point

Tools that message your customers for you do it from their number, in their words, on their template approvals. Your customer ends up in a conversation you cannot see and cannot continue. We stop before that. We send each status change to your own endpoint as a signed webhook. Your customers hear from your number, in your words, through your own setup, and the reply comes back to you.

A failed payment does not cut you off

A card expiring on a Sunday should not strand parcels already in transit. Nothing is cut off at once. You cannot register new parcels, but everything already being tracked keeps running and keeps notifying for 7 days while you sort the payment out.

Your customers' data is not our product

We hold recipient phone numbers on your behalf and for no purpose of our own. No selling, no advertising, no model training. The raw courier records that carry the most personal detail are deleted automatically once they can no longer settle a dispute.

Nothing goes quietly missing

If your endpoint is down we retry 6 times over roughly a day. Every attempt is listed with its status code and response body, and you can retry any of them by hand. A system that silently drops notifications is worse than one that has none, because you find out from your customer.

Built for a phone

The whole product, not a cut-down version of it. Parcels get registered from the packing table more often than from a desk, and that is where it has to work.

The Privacy Policy says exactly what is kept and for how long.

Questions people ask

Do I need a WhatsApp Business API account?

You need somewhere for the events to land. That is usually a WhatsApp Business API setup, but an internal tool, an order management system or a small script all work equally well. If you have nothing yet, the events still collect on your Webhook deliveries screen.

What if I enter the wrong courier?

The courier and tracking number cannot be edited, because both are registered with the courier network and changing either would make it a different shipment. Delete the parcel instead: that frees the number to be added again, and returns the credit if the courier has not scanned it yet.

How quickly do updates arrive?

As soon as the courier reports the scan, which is the part outside our control. A parcel moving overnight is often not scanned until morning. We pass on what we are given the moment we are given it.

Can I use it for international shipments?

Yes. The tracking network reaches international carriers as well as Indian ones. Phone numbers typed with a + are kept as entered; numbers without one are assumed Indian.

Do unused credits roll over?

The monthly plan allowance does not. Extra credits bought as an add-on do, for as long as your subscription is active. The plan allowance is always spent first, so the credits you paid extra for are the ones that survive.

What happens to my data if I cancel?

Tracking and event delivery stop at the end of the period you have paid for. Ask us before you go and we will send you your data in a machine-readable format.

Something not answered here? Ask us, or write to hello@owlsy.dev.

Stop answering “where is my order?”

Creating an account is free. Look around the whole product before you pay for anything.