---
title: "Create a rate"
method: POST
path: "/shipping/{connection_id}/rate"
tags: ["shipping", "rate"]
---

# Create a rate

`POST /shipping/{connection_id}/rate`

## Request

- Base URL: `http://api.unified.to`
- URL: `http://api.unified.to/shipping/{connection_id}/rate`
- Auth: API key in header `authorization`

## Path parameters

- `connection_id` string, required

## Query parameters

- `fields` string[]
- `raw` string

## Request body

- ShippingRate
  - `shipment_id` string: Reference to the shipping object (if rate is for existing shipment)
  - `currency` string
  - `from_address` ShippingRateFromAddress: Origin 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
  - `to_address` ShippingRateToAddress: Destination 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
  - `packages` ShippingPackage[]: Multiple packages (alternative to package)
    - `weight` number: Weight of the package
    - `weight_unit` 'g' | 'kg' | 'oz' | 'lb': Unit for weight (g, kg, oz, lb)
    - `length` number: Length of the package
    - `width` number: Width of the package
    - `height` number: Height of the package
    - `size_unit` 'cm' | 'inch': Unit for dimensions (cm, inch)
    - `description` string: Description of the package contents
    - `value` number: Declared value of the package
    - `currency` string: ISO 4217 currency code
    - `tracking_number` string: Package-level tracking (for multi-package shipments)
    - `insured_amount` number: Insured value for this package
  - `ship_by_at` string, date-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` ShippingRateRate[]
    - `title` string, required
    - `description` string
    - `amount` number
    - `currency` string
    - `base_amount` number: Base shipping rate
    - `tax_amount` number
    - `discount_amount` number: Applied discount
    - `surcharges` ShippingRateSurcharge[]: Additional charges
      - `code` string: Surcharge type (e.g., "RESIDENTIAL", "FUEL", "SIGNATURE")
      - `name` string: Human-readable name
      - `amount` number: Surcharge amount
      - `description` string: Description of surcharge
    - `rate_source` string: Source of rate (e.g., "carrier", "negotiated", "account")
    - `is_negotiated_rate` boolean: Whether this is a negotiated rate
    - `estimated_days` number: Estimated delivery time in days
    - `delivery_days` number: Delivery days (integer)
    - `estimated_delivery_end_at` string, date-time: Specific delivery date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `estimated_delivery_start_at` string, date-time: Time window (e.g., "10:00 AM - 2:00 PM") (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `delivery_terms` string: Delivery duration terms (e.g., "3-5 business days")
    - `transit_hours` number: Transit time in hours
    - `is_guaranteed` boolean: Whether delivery is guaranteed
    - `package_type` string: Package type (e.g., "package", "envelope", "flat")
    - `is_trackable` boolean: Whether shipment is trackable
    - `is_active` boolean: Whether rate is currently available
  - `metadata` ShippingMetadata[]
    - `id` string
    - `slug` string
    - `value` unknown
    - `namespace` string
    - `format` 'TEXT' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'FILE' | 'TEXTAREA' | 'SINGLE_SELECT' | 'MULTIPLE_SELECT' | 'MEASUREMENT' | 'PRICE' | 'YES_NO' | 'CURRENCY' | 'URL'
    - `extra_data` unknown
  - `raw` unknown

## Response `200`

Successful

- ShippingRate
  - `shipment_id` string: Reference to the shipping object (if rate is for existing shipment)
  - `currency` string
  - `from_address` ShippingRateFromAddress: Origin 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
  - `to_address` ShippingRateToAddress: Destination 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
  - `packages` ShippingPackage[]: Multiple packages (alternative to package)
    - `weight` number: Weight of the package
    - `weight_unit` 'g' | 'kg' | 'oz' | 'lb': Unit for weight (g, kg, oz, lb)
    - `length` number: Length of the package
    - `width` number: Width of the package
    - `height` number: Height of the package
    - `size_unit` 'cm' | 'inch': Unit for dimensions (cm, inch)
    - `description` string: Description of the package contents
    - `value` number: Declared value of the package
    - `currency` string: ISO 4217 currency code
    - `tracking_number` string: Package-level tracking (for multi-package shipments)
    - `insured_amount` number: Insured value for this package
  - `ship_by_at` string, date-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` ShippingRateRate[]
    - `title` string, required
    - `description` string
    - `amount` number
    - `currency` string
    - `base_amount` number: Base shipping rate
    - `tax_amount` number
    - `discount_amount` number: Applied discount
    - `surcharges` ShippingRateSurcharge[]: Additional charges
      - `code` string: Surcharge type (e.g., "RESIDENTIAL", "FUEL", "SIGNATURE")
      - `name` string: Human-readable name
      - `amount` number: Surcharge amount
      - `description` string: Description of surcharge
    - `rate_source` string: Source of rate (e.g., "carrier", "negotiated", "account")
    - `is_negotiated_rate` boolean: Whether this is a negotiated rate
    - `estimated_days` number: Estimated delivery time in days
    - `delivery_days` number: Delivery days (integer)
    - `estimated_delivery_end_at` string, date-time: Specific delivery date (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `estimated_delivery_start_at` string, date-time: Time window (e.g., "10:00 AM - 2:00 PM") (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
    - `delivery_terms` string: Delivery duration terms (e.g., "3-5 business days")
    - `transit_hours` number: Transit time in hours
    - `is_guaranteed` boolean: Whether delivery is guaranteed
    - `package_type` string: Package type (e.g., "package", "envelope", "flat")
    - `is_trackable` boolean: Whether shipment is trackable
    - `is_active` boolean: Whether rate is currently available
  - `metadata` ShippingMetadata[]
    - `id` string
    - `slug` string
    - `value` unknown
    - `namespace` string
    - `format` 'TEXT' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'FILE' | 'TEXTAREA' | 'SINGLE_SELECT' | 'MULTIPLE_SELECT' | 'MEASUREMENT' | 'PRICE' | 'YES_NO' | 'CURRENCY' | 'URL'
    - `extra_data` unknown
  - `raw` unknown

---

[API](https://skmtc.dev/unified/apis/unified-to-api-2.md) · [All operations](https://skmtc.dev/unified/apis/unified-to-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/unified/apis/unified-to-api-2/revisions/7a38bdd7f089?raw)
