Shipping Rates
Shipping Rates
Calculates shipping rates from all couriers for a single route. Each successful call costs Rp 5, deducted from your balance.
GET /courier/v2/rates
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
origin_district_code | string | no | Origin district code. Required if sender_address_id is not sent. |
sender_address_id | string | no | Saved sender address ID. Required if origin_district_code is not sent. |
destination_district_code | string | yes | Destination district code (from the Locations endpoints). |
weight | integer | yes | Package weight in grams (min 1). |
item_value | integer | no | Item value in Rupiah (basis for insurance calculation). |
insurance | boolean | no | Set true to include the insurance fee in the rate. |
sender_type | string | no | Shipping method: picked up (courier pickup, default) or dropped (drop-off at an outlet). dropped only shows couriers that accept drop-off. |
length | integer | no | Package length (cm) for volumetric weight calculation. |
width | integer | no | Package width (cm). |
height | integer | no | Package height (cm). |
Example Request
- cURL
- JavaScript
- Python
curl -X GET 'https://use.api.co.id/courier/v2/rates?origin_district_code=3374010&destination_district_code=3173040&weight=1000' \
-H 'x-api-co-id: YOUR_API_KEY'
const res = await fetch('https://use.api.co.id/courier/v2/rates?origin_district_code=3374010&destination_district_code=3173040&weight=1000', {
method: 'GET',
headers: {
'x-api-co-id': 'YOUR_API_KEY',
},
});
const data = await res.json();
import requests
res = requests.get(
"https://use.api.co.id/courier/v2/rates",
params={"origin_district_code":"3374010","destination_district_code":"3173040","weight":"1000"},
headers={"x-api-co-id": "YOUR_API_KEY"},
)
data = res.json()
Example Response
{
"is_success": true,
"message": "OK",
"data": {
"quote_id": "qt_9f2a7c1b8e3d4a5f",
"rates": [
{
"courier_code": "ninja",
"courier_name": "Ninja Xpress",
"courier_image": "https://use.api.co.id/assets/couriers/ninja.png",
"service_code": "STANDARD",
"service_name": "Standard",
"service_type": "regular",
"etd": "2 - 3 hari",
"est": "2026-08-10",
"is_cod": false,
"normal_price": 12000,
"is_cheapest": true,
"is_fastest": false,
"price": 12000,
"handling_fee": 2000,
"insurance_fee": 0,
"total_price": 14000
}
]
}
}
- Save the
quote_id— it is required when creating an order so the price is locked in. - If your balance is insufficient for the Rp 5 fee, the endpoint returns
402. - Send
origin_district_codeorsender_address_id; one of them is required. - The shipping method (
sender_type) is tied to thequote_id. Fordropped,picked_up_timeis not needed when creating the order. Check each courier's drop-off support viasender_typesin the List Couriers endpoint.
info
COD (cash on delivery) is coming soon. For now, all rates and orders are non-COD (is_cod: false).
Try it out
- GET/courier/v2/ratesShipping Rates
Was this page helpful?