Skip to main content

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

ParamRequiredDescription
carrierCodeYesCarrier 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.

FieldTypeDescription
codestringService code — use as shippingType.service on Rate
shortNameobjectLocalized short name
fullNameobjectLocalized 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:

  1. GET /carriers — pick a code
  2. GET /carrier-services?carrierCode={code} — pick a service code (optional)
  3. POST /rate with shippingType:
{
"shippingOptions": { "shippingDate": "2026-06-20" },
"shipper": { "…": "…" },
"recipient": { "…": "…" },
"packages": { "…": "…" },
"shippingType": {
"carrier": "federal-express",
"service": "FEDEX_GROUND"
}
}
shippingType.serviceBehavior
omitted / defaultCheapest rate for the selected carrier
{service-code}Specific service (from GET /carrier-services)

See RateshippingType for full carrier value behavior (all, cheapest, fastest, {carrier-code}).

Error responses

HTTPCondition
400Missing carrierCode query parameter
401Missing/invalid/expired API key
404Carrier not in the company's pricing group
500Internal error