Skip to main content
The optional filters block restricts which of a customer’s service mappings are priced. Filter by the same values you see in the response — service and rate card are matched by their alias (serviceId / rateCardId).
"filters": {
  "carrierIds":     ["ZEPHYR"],        // carrier alias
  "serviceIds":     ["EXPRESS"],       // = the serviceId in the response
  "rateCardIds":    ["EX_RATES"],      // = the rateCardId in the response
  "serviceTypes":   ["DOMESTIC"],      // service type
  "serviceClasses": ["EXPRESS"]        // service class
}

Dimensions

carrierIds
string[]
Restrict to services supplied by these carriers, matched by carrier alias.
serviceIds
string[]
Restrict to these services, matched by service alias — the same value returned as serviceId on each quote line (e.g. ZEPHYR, FALCON).
rateCardIds
string[]
Restrict to these rate cards, matched by rate-card alias — the same value returned as rateCardId (e.g. ZEPHYR_EXP, FALCON_STD).
serviceTypes
string[]
Restrict to these service types, e.g. DOMESTIC, INTERNATIONAL.
serviceClasses
string[]
Restrict to these service classes, e.g. STANDARD, EXPRESS.

How matching works

Empty = no restriction

An empty or omitted array places no restriction on that dimension. Omit filters entirely to price everything.

AND across, OR within

A rate card is priced only if it satisfies every non-empty dimension; within one dimension, matching any listed value passes.

Example — combine dimensions

Price only the Zephyr service and the ZEPHYR_EXP rate card:
"filters": { "serviceIds": ["ZEPHYR"], "rateCardIds": ["ZEPHYR_EXP"] }

Example — several services

Price Zephyr or Falcon (drops everything else):
"filters": { "serviceIds": ["ZEPHYR", "FALCON"] }
If a filter matches nothing, that customer’s quotes array comes back empty (and noQuoteMessage may explain why) — the request still succeeds.