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
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
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
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.
The courier has the consignment number on file. Good for a "we've booked it" message.
SHIPMENT_CREATED
It is moving. Once, on first movement, not on every hub scan.
IN_TRANSIT
On the van today. The one message that reliably stops a "where is it" call.
OUT_FOR_DELIVERY
Handed over. The natural moment to ask for a review or a reorder.
DELIVERED
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.
{ "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 plansOne 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.