GET /carrier-services
List services for a carrier when that carrier is in the company's pricing group. Use returned code values as shippingType.service on Rate.
Scope: (none — any valid public-api key)
Query parameters
| Param | Required | Description |
|---|---|---|
carrierCode | Yes | Carrier code from GET /carriers (e.g. federal-express) |
Request body
None.
Success response (200)
Returns a JSON array in data. The list always includes a default entry first. Omit shippingType.service (or use default) to get the cheapest rate for that carrier. Disabled services are excluded.
| Field | Type | Description |
|---|---|---|
code | string | Service code — use as shippingType.service on Rate |
shortName | object | Localized short name |
fullName | object | Localized full name |
Example request:
GET /carrier-services?carrierCode=federal-express
{
"data": [
{
"code": "default",
"shortName": { "en": "Default", "fr": "Par défaut" },
"fullName": { "en": "Default Service", "fr": "Service par défaut" }
},
{
"code": "FEDEX_GROUND",
"shortName": { "en": "Ground" },
"fullName": { "en": "FedEx Ground" }
}
]
}
Using with Rate (shippingType)
Typical flow:
- GET /carriers — pick a
code GET /carrier-services?carrierCode={code}— pick a servicecode(optional)POST /ratewithshippingType:
{
"shippingOptions": { "shippingDate": "2026-06-20" },
"shipper": { "…": "…" },
"recipient": { "…": "…" },
"packages": { "…": "…" },
"shippingType": {
"carrier": "federal-express",
"service": "FEDEX_GROUND"
}
}
shippingType.service | Behavior |
|---|---|
omitted / default | Cheapest rate for the selected carrier |
{service-code} | Specific service (from GET /carrier-services) |
See Rate → shippingType for full carrier value behavior (all, cheapest, fastest, {carrier-code}).
Error responses
| HTTP | Condition |
|---|---|
400 | Missing carrierCode query parameter |
401 | Missing/invalid/expired API key |
404 | Carrier not in the company's pricing group |
500 | Internal error |