- Home
- Features
Core Features
Customization & Scalability
- Pricing
- Demo Request
- Live Session
- Account
A courier API lets your systems book shipments, track parcels and cancel orders programmatically instead of through a portal. The iCargos REST API covers booking, full and latest-status tracking, cancellation, serviceable-city lookup and pickup-profile creation — authenticated with a client code and key.
This isn't a bolt-on. Nearly half of every parcel booked on iCargos comes in through the API — it's the primary way high-volume merchants integrate.
Two credentials on every call — no OAuth dance.
Your account identifier, shown read-only on the portal's API Setting page.
Generated on the same page with Generate API Auth Key, then saved. Send it as auth_key on every request.
An admin enables API access on the account before a key will work — worth confirming up front, since a key generated on a disabled account authenticates as invalid.
A focused REST surface for the full shipment lifecycle.
| Endpoint | Purpose |
|---|---|
| POST /API/CreateOrder.php | Book a shipment |
| POST /API/TrackOrder.php | Full tracking history |
| POST /API/CurrentStatus.php | Latest status only — use this for polling |
| GET /API/CancelOrder.php | Cancel an order |
| POST /API/GetCitiesList.php | Serviceable cities — pre-validate destinations |
| POST /API/ProductAndService.php | Products, services, cities, profiles |
| POST /API/CreateProfile.php | Create a pickup profile |
| GET /API/getThirdpartyApiAndGateways.php | Available carrier list |
One POST to CreateOrder with the shipment details returns a tracking number and the assigned carrier.
// required fields { "auth_key": "<your key>", "client_code": "<your code>", "origin": "karachi", "destination": "lahore", "receiver_name": "Ayesha Khan", "receiver_phone": "03001234567", "receiver_address": "House 12, Gulberg III", "pieces": 1, "weight": 0.5, "service_type": "Overnight", "collection_amount": 2500, "product_description": "Cotton kurta", "special_instruction": "Call before delivery" }
{
"tracking_no": "CN000123456",
"thirdparty_tracking_no": "LEP987654",
"thirdparty_name": "Leopards",
"id": "88213",
"invoice_link": "https://.../invoice/88213"
}The honest edge-cases that save an integration day two.
CurrentStatus returns just the latest status and is the lightweight choice for scheduled polling; TrackOrder returns the full history.GetCitiesList and send an exact match, or an unknown city can price the shipment at zero.If you sell on Shopify or WooCommerce, you don't have to touch the API at all.
An embedded Shopify app books, tracks, bulk-labels and fulfils from inside your store — with multiple couriers built in. See the integrations hub.
Push single or bulk orders to your courier from the WooCommerce orders list, print labels and show tracking — without leaving WordPress.
For custom storefronts and ERPs, the REST API above gives you the same booking, tracking and cancellation the plugins use.
client_code and an auth_key. You generate the key on the portal's API Setting page (an admin enables API access on the account first), then send both on each request. There's no OAuth flow./API/CreateOrder.php with origin, destination, receiver details, pieces, weight, service type, collection amount and description. On success it returns a tracking number, the assigned carrier, an order id and an invoice link.CurrentStatus for polling — it returns only the latest status and is lighter. Use TrackOrder when you need the full status history for a shipment.GetCitiesList.Book a demo and we'll enable API access and walk your team through a first live booking.
iCargos © Copyright 2026. All Rights Reserved. - Powered By IT Vision Pvt. Ltd.