Quick Start
Developer Guide
Before you begin
You will need:
- A ShipRateAPI account with at least one store created
- An API key — issued automatically when you create a store in the ShipRateAPI admin portal, under Stores
- At least one carrier configured and enabled in the portal
Step 1 — Choose your integration method
All platforms use a single endpoint. The platform is passed in the X-Platform request header so ShipRateAPI can attribute requests to the correct integration for logging and analytics. The first-party plugins set this header automatically.
POST /api/v1/quotes
x-api-key: YOUR_API_KEY
X-Platform: magento2 | shopify | bigcommerce | commercetools | customIf you are using one of the first-party plugins, the endpoint is configured in the plugin settings and called automatically. See the Magento 2, Shopify, BigCommerce, or commercetools guides for plugin-specific setup.
Step 2 — Make your first rate request
Send a POST request with a JSON body describing the shipment destination and items. All requests must include your API key in the x-api-key header.
curl -X POST https://api.shiprateapi.com/api/v1/quotes \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"destination": {
"country": "GB",
"postcode": "SW1A 1AA",
"city": "London"
},
"items": [
{
"sku": "WIDGET-001",
"name": "Blue Widget",
"quantity": 2,
"unitPrice": 2499,
"weight": 1.25,
"tags": []
}
]
}'See the API Reference for a full description of every field.
Step 3 — Read the response
Every successful response is wrapped in an envelope: success plus a data object holding the quote. Read the quote from data — the rates array inside it lists every available shipping method, and all entries returned are offerable.
{
"success": true,
"data": {
"quoteId": "f1e2d3c4-...",
"rates": [
{
"id": "9f8e7d6c-...",
"carrierName": "Royal Mail",
"carrierCode": "royal-mail",
"serviceName": "Tracked 48",
"amount": 399,
"currency": "GBP",
"displayAmount": "£3.99",
"minDeliveryDays": 2,
"maxDeliveryDays": 3,
"validFrom": null,
"validTo": null
}
],
"totalWeightGrams": 700,
"totalValueAmount": 3998,
"currency": "GBP",
"zoneName": "UK Mainland",
"cached": false,
"quoteDate": "2026-07-17",
"calculatedAt": "2026-07-17T12:00:00.000Z",
"responseMs": 45
}
}- amount — the price in the smallest currency unit (pence/cents)
- displayAmount — a pre-formatted price string ready to show the customer
- carrierCode — the carrier's own code. The most stable identifier in the response, and the one to store against an order
- serviceName — a display label taken from the matched rate rule's name. Merchants can edit it in the admin at any time, so show it to the customer rather than matching on it
- id — generated fresh on every request. It identifies a rate within a single response only; it is not a durable rate id and will not reappear on a later quote
Next steps
- Authentication — understand API key scoping and rotation
- API Reference — full payload and response field reference
- Tags & Routing — tag products to influence carrier selection