For the complete documentation index, see llms.txt. This page is also available as Markdown.

Rate Cards

The Rate Cards API allows you to read the carrier rate cards your account is priced on and download them as a PDF or spreadsheet.

A rate card is the price table your account is quoted from for a given carrier: a grid of weight bands against delivery zones, in a single currency. When you request a rate, Terminal resolves the card that applies to your account and prices the shipment from it.

These endpoints are read-only. They expose the carrier-wide cards Terminal has assigned to your account. They do not create or modify rate cards.

The Rate Card Object

This section describes the different attributes available for a rate card.

Attribute
Description

carrier

string

Unique slug for the carrier the card belongs to e.g. dhl-ng.

carrier_name

string

Display name of the carrier.

description

string

Description of the rate card. Can be empty.

directions

array

One entry per service direction the carrier prices for you, each with its own rate card. See Rate Card Directions.

pricing

object

The price matrix. Returned on the detail endpoint only. See Rate Card Pricing.

pricing_grade

enum

Commercial tier your account sits on for this carrier. Must be one of standard (default published pricing), strategic (negotiated) or strategic-pro (negotiated, highest volume tier).

rate_card_id

string

Unique reference for the rate card. Returned on the detail endpoint; on the list it appears per direction.

transit

object

Transit time range across the card's zones, not a per-shipment estimate. See Rate Card Directions.

updated_at

datetime

Time the rate card was last updated.

How a card is resolved

Which card applies to you depends on three things, and all three are recomputed on every request:

  • Carrier — each carrier has its own cards.

  • Your account country — returned as user_country on each entry.

  • Service direction — local, export, or import.

A carrier therefore appears once in the list with one directions entry per direction it prices for you. Carriers with nothing assigned are omitted rather than returned empty.

Only cards that are currently active and currently assigned to your account are reachable. A card that is draft, disabled, or no longer yours returns an error rather than stale pricing, so a card you can read here is always a card you can be quoted on.

What you will not see

The prices returned are the full prices you are charged, with all surcharges already applied — includes_surcharges is always true. The derivation behind those prices (base cost, markup structure, per-band surcharge overrides) is not exposed: band_surcharge_overrides is always returned as an empty array.

Was this helpful?