Rate data model

View field support, webhooks, and list parameters for each integration on the Supported Integrations page.

FieldTypeRequiredDescription
shipment_idstringNoReference to the shipping object (if rate is for existing shipment)
currencystringNo
from_addressobjectNoOrigin address
from_address.address1stringNo
from_address.address2stringNo
from_address.citystringNo
from_address.regionstringNo
from_address.region_codestringNo
from_address.postal_codestringNo
from_address.countrystringNo
from_address.country_codestringNoISO 2-digit country code
from_address.namestringNoRecipientsender name
from_address.company_namestringNoCompany name (for commercial addresses)
from_address.telephonestringNoPhone number (required by FedEx, UPS, DHL)
from_address.emailstringNoEmail address (for delivery notifications)
from_address.is_residentialbooleanNoAlias for address_type === 'RESIDENTIAL'
from_address.is_validatedbooleanNoWhether address has been validated
from_address.delivery_instructionsstringNoSpecial delivery notes
to_addressobjectNoDestination address
to_address.address1stringNo
to_address.address2stringNo
to_address.citystringNo
to_address.regionstringNo
to_address.region_codestringNo
to_address.postal_codestringNo
to_address.countrystringNo
to_address.country_codestringNoISO 2-digit country code
to_address.namestringNoRecipientsender name
to_address.company_namestringNoCompany name (for commercial addresses)
to_address.telephonestringNoPhone number (required by FedEx, UPS, DHL)
to_address.emailstringNoEmail address (for delivery notifications)
to_address.is_residentialbooleanNoAlias for address_type === 'RESIDENTIAL'
to_address.is_validatedbooleanNoWhether address has been validated
to_address.delivery_instructionsstringNoSpecial delivery notes
packagesShippingPackage[]NoMultiple packages (alternative to package)
packages[].weightnumberNoWeight of the package
packages[].weight_unitenumNoUnit for weight (g, kg, oz, lb) Values: g, kg, oz, lb
packages[].lengthnumberNoLength of the package
packages[].widthnumberNoWidth of the package
packages[].heightnumberNoHeight of the package
packages[].size_unitenumNoUnit for dimensions (cm, inch) Values: cm, inch
packages[].descriptionstringNoDescription of the package contents
packages[].valuenumberNoDeclared value of the package
packages[].currencystringNoISO 4217 currency code
packages[].tracking_numberstringNoPackage-level tracking (for multi-package shipments)
packages[].insured_amountnumberNoInsured value for this package
ship_by_atstring (date-time)NoLatest date to ship (from order) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
carrier_idstringNoReference to the carrier
idstringNoUnique identifier for this rate object
ratesShippingRateRate[]No
rates[].titlestringYes
rates[].descriptionstringNo
rates[].amountnumberNo
rates[].currencystringNo
rates[].base_amountnumberNoBase shipping rate
rates[].tax_amountnumberNo
rates[].discount_amountnumberNoApplied discount
rates[].surchargesShippingRateSurcharge[]NoAdditional charges
rates[].surcharges[].codestringNoSurcharge type (e.g., "RESIDENTIAL", "FUEL", "SIGNATURE")
rates[].surcharges[].namestringNoHuman-readable name
rates[].surcharges[].amountnumberNoSurcharge amount
rates[].surcharges[].descriptionstringNoDescription of surcharge
rates[].rate_sourcestringNoSource of rate (e.g., "carrier", "negotiated", "account")
rates[].is_negotiated_ratebooleanNoWhether this is a negotiated rate
rates[].estimated_daysnumberNoEstimated delivery time in days
rates[].delivery_daysnumberNoDelivery days (integer)
rates[].estimated_delivery_end_atstring (date-time)NoSpecific delivery date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
rates[].estimated_delivery_start_atstring (date-time)NoTime window (e.g., "10:00 AM - 2:00 PM") (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
rates[].delivery_termsstringNoDelivery duration terms (e.g., "3-5 business days")
rates[].transit_hoursnumberNoTransit time in hours
rates[].is_guaranteedbooleanNoWhether delivery is guaranteed
rates[].package_typestringNoPackage type (e.g., "package", "envelope", "flat")
rates[].is_trackablebooleanNoWhether shipment is trackable
rates[].is_activebooleanNoWhether rate is currently available

TypeScript

TypeScript
export type ShippingRate = {
	shipment_id?: string; // Reference to the shipping object (if rate is for existing shipment)
	currency?: string;
	from_address?: {
		address1?: string; 
		address2?: string; 
		city?: string; 
		region?: string; 
		region_code?: string; 
		postal_code?: string; 
		country?: string; 
		country_code?: string; // ISO 2-digit country code 
		name?: string; // Recipientsender name 
		company_name?: string; // Company name (for commercial addresses) 
		telephone?: string; // Phone number (required by FedEx, UPS, DHL) 
		email?: string; // Email address (for delivery notifications) 
		is_residential?: boolean; // Alias for address_type === 'RESIDENTIAL' 
		is_validated?: boolean; // Whether address has been validated 
		delivery_instructions?: string; // Special delivery notes 
	}; // Origin address
	to_address?: {
		address1?: string; 
		address2?: string; 
		city?: string; 
		region?: string; 
		region_code?: string; 
		postal_code?: string; 
		country?: string; 
		country_code?: string; // ISO 2-digit country code 
		name?: string; // Recipientsender name 
		company_name?: string; // Company name (for commercial addresses) 
		telephone?: string; // Phone number (required by FedEx, UPS, DHL) 
		email?: string; // Email address (for delivery notifications) 
		is_residential?: boolean; // Alias for address_type === 'RESIDENTIAL' 
		is_validated?: boolean; // Whether address has been validated 
		delivery_instructions?: string; // Special delivery notes 
	}; // Destination address
	packages?: []; // Multiple packages (alternative to package)
	ship_by_at?: string-time; // Latest date to ship (from order) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
	carrier_id?: string; // Reference to the carrier
	id?: string; // Unique identifier for this rate object
	rates?: [];
	raw?: any;
} 

Zod

Zod
import { z } from 'zod';

export const ZodShippingRate = z.object({
	shipment_id: z.string().optional().describe("Reference to the shipping object (if rate is for existing shipment)"),
	currency: z.string().optional(),
	from_address: z.object({
			address1: z.string().optional(),
			address2: z.string().optional(),
			city: z.string().optional(),
			region: z.string().optional(),
			region_code: z.string().optional(),
			postal_code: z.string().optional(),
			country: z.string().optional(),
			country_code: z.string().optional().describe("ISO 2-digit country code"),
			name: z.string().optional().describe("Recipientsender name"),
			company_name: z.string().optional().describe("Company name (for commercial addresses)"),
			telephone: z.string().optional().describe("Phone number (required by FedEx, UPS, DHL)"),
			email: z.string().optional().describe("Email address (for delivery notifications)"),
			is_residential: z.boolean().optional().describe("Alias for address_type === 'RESIDENTIAL'"),
			is_validated: z.boolean().optional().describe("Whether address has been validated"),
			delivery_instructions: z.string().optional().describe("Special delivery notes")
}).optional().describe("Origin address"),
	to_address: z.object({
			address1: z.string().optional(),
			address2: z.string().optional(),
			city: z.string().optional(),
			region: z.string().optional(),
			region_code: z.string().optional(),
			postal_code: z.string().optional(),
			country: z.string().optional(),
			country_code: z.string().optional().describe("ISO 2-digit country code"),
			name: z.string().optional().describe("Recipientsender name"),
			company_name: z.string().optional().describe("Company name (for commercial addresses)"),
			telephone: z.string().optional().describe("Phone number (required by FedEx, UPS, DHL)"),
			email: z.string().optional().describe("Email address (for delivery notifications)"),
			is_residential: z.boolean().optional().describe("Alias for address_type === 'RESIDENTIAL'"),
			is_validated: z.boolean().optional().describe("Whether address has been validated"),
			delivery_instructions: z.string().optional().describe("Special delivery notes")
}).optional().describe("Destination address"),
	packages: z.array().optional().describe("Multiple packages (alternative to package)"),
	ship_by_at: z.string-time().optional().describe("Latest date to ship (from order) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"),
	carrier_id: z.string().optional().describe("Reference to the carrier"),
	id: z.string().optional().describe("Unique identifier for this rate object"),
	rates: z.array().optional(),

});

Python

Python
import dataclasses

@dataclasses.dataclass
class PropertyShippingRateFrom_address:
	address1: Optional[str]
	address2: Optional[str]
	city: Optional[str]
	region: Optional[str]
	region_code: Optional[str]
	postal_code: Optional[str]
	country: Optional[str]
	"""ISO 2-digit country code"""
	country_code: Optional[str]
	"""Recipientsender name"""
	name: Optional[str]
	"""Company name (for commercial addresses)"""
	company_name: Optional[str]
	"""Phone number (required by FedEx, UPS, DHL)"""
	telephone: Optional[str]
	"""Email address (for delivery notifications)"""
	email: Optional[str]
	"""Alias for address_type === 'RESIDENTIAL'"""
	is_residential: Optional[bool]
	"""Whether address has been validated"""
	is_validated: Optional[bool]
	"""Special delivery notes"""
	delivery_instructions: Optional[str]

@dataclasses.dataclass
class PropertyShippingRateTo_address:
	address1: Optional[str]
	address2: Optional[str]
	city: Optional[str]
	region: Optional[str]
	region_code: Optional[str]
	postal_code: Optional[str]
	country: Optional[str]
	"""ISO 2-digit country code"""
	country_code: Optional[str]
	"""Recipientsender name"""
	name: Optional[str]
	"""Company name (for commercial addresses)"""
	company_name: Optional[str]
	"""Phone number (required by FedEx, UPS, DHL)"""
	telephone: Optional[str]
	"""Email address (for delivery notifications)"""
	email: Optional[str]
	"""Alias for address_type === 'RESIDENTIAL'"""
	is_residential: Optional[bool]
	"""Whether address has been validated"""
	is_validated: Optional[bool]
	"""Special delivery notes"""
	delivery_instructions: Optional[str]

@dataclasses.dataclass
class ShippingRate:
	"""Reference to the shipping object (if rate is for existing shipment)"""
	shipment_id: Optional[str]
	currency: Optional[str]
	"""Origin address"""
	from_address: Optional[PropertyShippingRateFrom_address]
	"""Destination address"""
	to_address: Optional[PropertyShippingRateTo_address]
	"""Multiple packages (alternative to package)"""
	packages: Optional[PropertyShippingRatePackages]
	"""Latest date to ship (from order) (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)"""
	ship_by_at: Optional[str]
	"""Reference to the carrier"""
	carrier_id: Optional[str]
	"""Unique identifier for this rate object"""
	id: Optional[str]
	rates: Optional[PropertyShippingRateRates]
Are we missing anything? Let us know
Was this page helpful?