CargoCharges Shipping API

Integrate international courier shipping from India into your app, Shopify store, or e-commerce platform. Compare real-time rates from DHL, FedEx, UPS and more. Book shipments and track parcels to 220+ countries — all via a simple REST API.

220+ Countries
5+ Carriers
REST JSON API
<200ms Response
FREE To Start

Authentication

All API requests require an API key for authentication. You can pass it via a request header or as a query parameter.

API Key

Header (Recommended)
X-API-Key: cc_live_your_api_key_here
Query Parameter
?api_key=cc_live_your_api_key_here

API keys follow the format: cc_live_ followed by 32 hexadecimal characters.

Important: Your API key will be sent to your registered email address after sign up. Keep it secure — do not expose it in client-side code or public repositories.

Base URL

https://cargocharges.com/api/v1/

All endpoints are relative to this base URL. Requests must use HTTPS.

Rate Limits

API calls are rate-limited based on your plan tier. Exceeding the limit returns HTTP 429.

TierRequests / MinuteDaily Limit
Free60Unlimited
Basic120Unlimited
Pro300Unlimited
Enterprise1,000Unlimited

Rate limit headers are included in every response:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58

Error Handling

Errors return a consistent JSON structure with an error code and message:

{ "success": false, "error": { "code": "MISSING_COUNTRY", "message": "Country parameter is required.", "http_status": 400 } }

Error Codes

CodeHTTPDescription
MISSING_API_KEY401No API key provided in request
INVALID_API_KEY401API key not found, inactive, or revoked
RATE_LIMIT_EXCEEDED429Too many requests — wait and retry
MISSING_COUNTRY400Country parameter is required
INVALID_WEIGHT400Weight must be between 0.5 and 300 KG
NO_RATES404No shipping rates found for this route
BLOCKED_COMMODITY422This commodity cannot be shipped to destination
NOT_FOUND404Shipment or resource not found
DB_ERROR503Service temporarily unavailable

Get Shipping Rates

GET /api/v1/rates
Get real-time shipping rates from DHL, FedEx, UPS, and other carriers for a given destination and weight.

Query Parameters

ParameterTypeRequiredDescription
countrystringRequiredDestination country name or code (e.g. "USA", "United Kingdom")
weightnumberRequiredPackage weight in KG (0.5 – 300)
commoditystringOptionalItem type: clothes, electronics, documents, medicine, food, cosmetics, etc.
pickup_citystringOptionalPickup city in India (default: Delhi)
cURL
JavaScript
Python
PHP
# Get rates to USA for 5kg clothes curl "https://cargocharges.com/api/v1/rates?country=USA&weight=5&commodity=clothes" \ -H "X-API-Key: cc_live_your_api_key_here"
// Get rates to USA for 5kg clothes const response = await fetch( 'https://cargocharges.com/api/v1/rates?country=USA&weight=5&commodity=clothes', { headers: { 'X-API-Key': 'cc_live_your_api_key_here' } } ); const data = await response.json(); console.log(data.data.carriers);
# Get rates to USA for 5kg clothes import requests response = requests.get( 'https://cargocharges.com/api/v1/rates', params={'country': 'USA', 'weight': 5, 'commodity': 'clothes'}, headers={'X-API-Key': 'cc_live_your_api_key_here'} ) data = response.json() print(data['data']['carriers'])
// Get rates to USA for 5kg clothes $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://cargocharges.com/api/v1/rates?country=USA&weight=5&commodity=clothes'); curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: cc_live_your_api_key_here']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $data = json_decode($response, true); print_r($data['data']['carriers']);
200 OK Response
{ "success": true, "message": "Shipping rates retrieved successfully.", "data": { "country": "USA", "weight": 5, "weight_unit": "kg", "commodity": "clothes", "carrier_count": 4, "carriers": [ { "carrier": "CourierVia.com", "total_price": 3500, "price_per_kg": 700, "currency": "INR", "estimated_delivery": "7-10 Days" }, { "carrier": "DHL", "total_price": 5200, "price_per_kg": 1040, "currency": "INR", "estimated_delivery": "3-5 Days" } ] } }

List Countries

GET /api/v1/countries
List all 220+ serviceable destination countries. Optionally filter by name.

Query Parameters

ParameterTypeRequiredDescription
searchstringOptionalFilter countries by name (e.g. "united", "aus")
cURL
curl "https://cargocharges.com/api/v1/countries?search=united" \ -H "X-API-Key: cc_live_your_api_key_here"
200 OKResponse
{ "success": true, "data": { "total": 3, "countries": [ { "id": 1, "name": "United Arab Emirates", "code": "UAE" }, { "id": 2, "name": "United Kingdom", "code": "UK" }, { "id": 3, "name": "United States", "code": "USA" } ] } }

Check Serviceability

GET /api/v1/serviceability
Check if a route is serviceable and which carriers are available. Also validates commodity restrictions.

Query Parameters

ParameterTypeRequiredDescription
countrystringRequiredDestination country
weightnumberOptionalPackage weight in KG (default: 5)
commoditystringOptionalCheck commodity restrictions
pincodestringOptionalPickup pincode in India
cURL
curl "https://cargocharges.com/api/v1/serviceability?country=USA&commodity=medicine" \ -H "X-API-Key: cc_live_your_api_key_here"
200 OKResponse
{ "success": true, "data": { "serviceable": true, "country": "USA", "commodity": "medicine", "commodity_allowed": true, "available_carriers": ["DHL", "FedEx"], "restrictions": ["Prescription required for controlled substances"] } }

Track Shipment

GET /api/v1/track
Track a shipment by its AWB (Air Waybill) number. Returns current status, carrier info, and tracking URL.

Query Parameters

ParameterTypeRequiredDescription
awbstringRequiredAWB / Tracking number
cURL
curl "https://cargocharges.com/api/v1/track?awb=7571143025" \ -H "X-API-Key: cc_live_your_api_key_here"
200 OKResponse
{ "success": true, "data": { "awb": "7571143025", "status": "in_transit", "status_display": "In Transit", "carrier": "DHL", "destination_country": "USA", "destination_city": "New York", "weight_kg": 5.2, "is_remote_area": false, "carrier_tracking_url": "https://www.dhl.com/in-en/home/tracking.html?tracking-id=7571143025" } }

Create Booking

POST /api/v1/book
Create a new shipping booking. Sends sender/receiver details and shipment info. Returns a booking ID and estimated rate.

Request Body (JSON)

FieldTypeRequiredDescription
sender.namestringRequiredSender full name
sender.phonestringRequiredSender phone number
sender.emailstringOptionalSender email
sender.addressstringRequiredPickup address
sender.citystringRequiredPickup city
sender.pincodestringRequiredPickup pincode
Receiver
receiver.namestringRequiredReceiver full name
receiver.phonestringRequiredReceiver phone
receiver.addressstringRequiredDelivery address
receiver.citystringRequiredDelivery city
receiver.countrystringRequiredDestination country
receiver.zipcodestringOptionalDestination ZIP code
Shipment
shipment.weightnumberRequiredWeight in KG
shipment.commoditystringRequiredItem type
shipment.carrierstringOptionalPreferred carrier (DHL, FedEx, etc.)
shipment.descriptionstringOptionalPackage description
shipment.declared_valuenumberOptionalDeclared value in INR
shipment.piecesnumberOptionalNumber of pieces (default: 1)
reference_idstringOptionalYour order/reference ID
cURL
curl -X POST "https://cargocharges.com/api/v1/book" \ -H "X-API-Key: cc_live_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "sender": { "name": "Rahul Kumar", "phone": "9876543210", "email": "[email protected]", "address": "123 MG Road", "city": "New Delhi", "pincode": "110001" }, "receiver": { "name": "John Smith", "phone": "+14155551234", "address": "456 Oak Ave", "city": "New York", "state": "NY", "country": "USA", "zipcode": "10001" }, "shipment": { "weight": 5, "commodity": "clothes", "carrier": "DHL", "description": "Personal clothing", "declared_value": 5000, "pieces": 1 }, "reference_id": "ORDER-12345" }'
201 CreatedResponse
{ "success": true, "message": "Booking created successfully.", "data": { "booking_id": "CC-API-20260301-4521", "reference_id": "ORDER-12345", "carrier": "DHL", "estimated_price": 5200, "currency": "INR", "status": "confirmed", "pickup": "Pickup will be scheduled within 24 hours" } }

Embeddable Widget

Add a shipping rate calculator to any website with just 2 lines of code. No backend required.

<!-- Add this where you want the calculator --> <div id="cc-shipping-calculator"></div> <script src="https://cargocharges.com/api/v1/widget/cc-widget.js" data-api-key="cc_live_your_api_key_here" data-theme="light"></script>

Widget Attributes

AttributeValuesDescription
data-api-keyYour API keyRequired — authenticates widget requests
data-themelight / darkWidget color theme
data-countrye.g. "USA"Pre-select destination country
data-show-booktrue / falseShow "Book Now" button

Pricing

Start free and scale as you grow. All plans include access to every endpoint.

Free
₹0
60 requests/minute
  • All 5 endpoints
  • 220+ countries
  • Email support
  • "Powered by" backlink required
Basic
₹999/month
120 requests/minute
  • Everything in Free
  • Priority email support
  • Backlink shown (smaller)
Enterprise
Custom
1,000 requests/minute
  • Everything in Pro
  • Dedicated account manager
  • SLA guarantee
  • Custom integration support

Support

Need help integrating? Our team is ready to assist.

Email[email protected]
WhatsApp+91-7861011111
Websitecargocharges.com

© 2026 CargoCharges.com — Invented Ideas Pvt Ltd. All rights reserved.