# List carriers

Products
            Plans
          
        
        
          
            
              
              Formerly ShipEngine
            
            
              Free
              Advanced
              Enterprise
            
          
          
            
              
            
            
              Free
              Starter
              Standard
              Premium
            
          
        
      
      
        
          Learn about products and plans
          
        
      
    

List all carriers that have been added to this account.

Endpoint: GET /v2/carriers
Version: 2.0.0
Security: api_keys

## Query parameters:

  - `page` (integer)
    Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
    Example: 2

  - `page_size` (integer)
    The number of results to return per response.
    Example: 50

  - `include_extended_details` (boolean)
    When true (the default), each carrier in the response includes two additional arrays: packages (the package types supported by that carrier) and options (the carrier-level advanced options available for that carrier).
Set to false to omit both arrays and reduce response payload size. This is useful when you only need basic carrier information such as carrier_id, balance, or services.

## Response 200 fields (application/json):

  - `carriers` (array, required)
    The carrier response body

  - `carriers.carrier_id` (string)
    A string that uniquely identifies the carrier.
    Example: "se-28529731"

  - `carriers.carrier_code` (string)
    The [shipping carrier] who will ship the package, such as fedex, dhl_express, stamps_com, etc.
    Example: "dhl_express"

  - `carriers.account_number` (string)
    The account number that the carrier is connected to.
    Example: "account_570827"

  - `carriers.connection_status` (string,null)
    The connection status of the carrier account. Indicates whether the carrier connection is pending approval or has been approved. This only applies to certain carriers; it can be undefined.
    Enum: "pending_approval", "approved"

  - `carriers.requires_funded_amount` (boolean)
    Indicates whether the carrier requires funding to use its services
    Example: true

  - `carriers.balance` (number)
    Current available balance
    Example: 3799.52

  - `carriers.nickname` (string)
    Nickname given to the account when initially setting up the carrier.
    Example: "ShipStation Account - Stamps.com"

  - `carriers.friendly_name` (string)
    Screen readable name
    Example: "Stamps.com"

  - `carriers.funding_source_id` (string,null)
    Funding source ID for the carrier
    Example: "se-28529731"

  - `carriers.primary` (boolean)
    Is this the primary carrier that is used by default when no carrier is specified in label/shipment creation
    Example: true

  - `carriers.has_multi_package_supporting_services` (boolean)
    Carrier supports multiple packages per shipment
    Example: true

  - `carriers.supports_label_messages` (boolean)
    The carrier supports adding custom label messages to an order.
    Example: true

  - `carriers.disabled_by_billing_plan` (boolean)
    The carrier is disabled by the current ShipStation account's billing plan.
    Example: true

  - `carriers.services` (array)
    A list of services that are offered by the carrier

  - `carriers.services.carrier_id` (string)
    A string that uniquely identifies the carrier
    Example: "se-28529731"

  - `carriers.services.carrier_code` (string)
    A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.
    Example: "se-28529731"

  - `carriers.services.service_code` (string)
    service code
    Example: "usps_media_mail"

  - `carriers.services.name` (string)
    User friendly service name
    Example: "USPS First Class Mail"

  - `carriers.services.domestic` (boolean)
    Supports domestic shipping
    Example: true

  - `carriers.services.international` (boolean)
    Supports international shipping.
    Example: true

  - `carriers.services.is_multi_package_supported` (boolean)
    Carrier supports multiple packages per shipment
    Example: true

  - `carriers.services.send_rates` (boolean)
    The service provides rates for the shipment.
    Example: true

  - `carriers.packages` (array)
    A list of package types that are supported by the carrier

  - `carriers.packages.package_id` (string)
    A string that uniquely identifies the package.
    Example: "se-28529731"

  - `carriers.packages.package_code` (string, required)
    A [package type] , such as thick_envelope, small_flat_rate_box, large_package, etc.  Use the code package for custom or unknown package types.
    Example: "small_flat_rate_box"

  - `carriers.packages.name` (string, required)
    Example: "laptop_box"

  - `carriers.packages.dimensions` (object)
    The custom dimensions for the package.

  - `carriers.packages.dimensions.unit` (string, required)
    Dimension unit
    Enum: "inch", "centimeter"

  - `carriers.packages.dimensions.length` (number, required)
    The length of the package, in the specified unit
    Example: 2

  - `carriers.packages.dimensions.width` (number, required)
    The width of the package, in the specified unit
    Example: 2

  - `carriers.packages.dimensions.height` (number, required)
    The height of the package, in the specified unit
    Example: 1

  - `carriers.packages.description` (string,null)
    Provides a helpful description for the custom package.
    Example: "Packaging for laptops"

  - `carriers.options` (array)
    A list of options that are available to that carrier

  - `carriers.options.name` (string)
    Name of advanced option
    Example: "contains_alcohol"

  - `carriers.options.default_value` (string)
    Default value of option
    Example: "false"

  - `carriers.options.description` (string)
    Description of option
    Example: "The description"

  - `carriers.send_rates` (boolean)
    The carrier provides rates for the shipment.
    Example: true

  - `carriers.supports_user_managed_rates` (boolean)
    The carrier supports user-managed rates for shipments.
    Example: true

  - `total` (integer, required)
    The total number of items across all pages of results
    Example: 2750

  - `page` (integer, required)
    The current page number of results.  For example, if there are 80 results, and the page size is 25, then page could be 1, 2, 3, or 4.  The first three pages would contain 25 items each, and the fourth page would contain the five remaining items.
    Example: 1

  - `pages` (integer, required)
    The total number of pages of results.  For example, if there are 80 results, and the page size is 25, then pages would be 4.  The first three pages would contain 25 items each, and the fourth page would contain the five remaining items.  If there are no results, then pages will be zero.
    Example: 4

  - `links` (object, required)
    Helpful links to other pages of results

  - `links.first` (object, required)
    The link to the first page of results.  This object will _always_ have an href field. If there are no results, then the first page will contain an empty array of items.

  - `links.first.href` (string, required)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.first.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `links.last` (object, required)
    The link to the final page of results.  This object will _always_ have an href field. If there are no results, then the final page will contain an empty array of items.

  - `links.last.href` (string, required)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.last.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `links.prev` (object, required)
    The link to the previous page of results.  The href field will only be set when the page is 2 or greater.

  - `links.prev.href` (string)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.prev.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `links.next` (object, required)
    The link to the next page of results.  The href field will only be set when the page is less than pages.

  - `links.next.href` (string)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.next.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `request_id` (string, required)
    A UUID that uniquely identifies the request id.
This can be given to the support team to help debug non-trivial issues that may occur
    Example: "aa3d8e8e-462b-4476-9618-72db7f7b7009"

  - `errors` (array, required)
    The errors associated with the failed API call

  - `errors.error_source` (string, required)
    The source of the error, as indicated by the name this informs us if the API call failed because of the
carrier, the order source, the ShipStation API itself, or the underlying ShipEngine platform.
    Enum: "carrier", "order_source", "ShipStation", "shipengine"

  - `errors.error_type` (string, required)
    The type of error
    Enum: "account_status", "business_rules", "validation", "security", "system", "integrations"

  - `errors.error_code` (string, required)
    The error code specified for the failed API Call
    Enum: "auto_fund_not_supported", "batch_cannot_be_modified", "carrier_conflict", "carrier_disconnected", "carrier_not_connected", "carrier_not_supported", "confirmation_not_supported", "default_warehouse_cannot_be_deleted", "field_conflict", "field_value_required", "forbidden", "identifier_conflict", "identifiers_must_match", "insufficient_funds", "invalid_address", "invalid_billing_plan", "invalid_field_value", "invalid_identifier", "invalid_status", "invalid_string_length", "label_images_not_supported", "meter_failure", "order_source_not_active", "rate_limit_exceeded", "refresh_not_supported", "request_body_required", "return_label_not_supported", "settings_not_supported", "subscription_inactive", "terms_not_accepted", "tracking_not_supported", "trial_expired", "unauthorized", "unknown", "unspecified", "verification_failure", "warehouse_conflict", "webhook_event_type_conflict", "customs_items_required", "incompatible_paired_labels", "invalid_charge_event", "invalid_object", "no_rates_returned"

  - `errors.message` (string, required)
    An error message associated with the failed API call
    Example: "Body of request cannot be null."

  - `errors.field_name` (string)
    The name of the field that caused the error (only present for validation errors)
    Example: "inventory_warehouse_id"

  - `errors.field_value` (string)
    The invalid value that was provided for the field (only present for validation errors)
    Example: "invalid-id"

## Response 207 fields (application/json):

  - `carriers` (array, required)
    The carrier response body

  - `carriers.carrier_id` (string)
    A string that uniquely identifies the carrier.
    Example: "se-28529731"

  - `carriers.carrier_code` (string)
    The [shipping carrier] who will ship the package, such as fedex, dhl_express, stamps_com, etc.
    Example: "dhl_express"

  - `carriers.account_number` (string)
    The account number that the carrier is connected to.
    Example: "account_570827"

  - `carriers.connection_status` (string,null)
    The connection status of the carrier account. Indicates whether the carrier connection is pending approval or has been approved. This only applies to certain carriers; it can be undefined.
    Enum: "pending_approval", "approved"

  - `carriers.requires_funded_amount` (boolean)
    Indicates whether the carrier requires funding to use its services
    Example: true

  - `carriers.balance` (number)
    Current available balance
    Example: 3799.52

  - `carriers.nickname` (string)
    Nickname given to the account when initially setting up the carrier.
    Example: "ShipStation Account - Stamps.com"

  - `carriers.friendly_name` (string)
    Screen readable name
    Example: "Stamps.com"

  - `carriers.funding_source_id` (string,null)
    Funding source ID for the carrier
    Example: "se-28529731"

  - `carriers.primary` (boolean)
    Is this the primary carrier that is used by default when no carrier is specified in label/shipment creation
    Example: true

  - `carriers.has_multi_package_supporting_services` (boolean)
    Carrier supports multiple packages per shipment
    Example: true

  - `carriers.supports_label_messages` (boolean)
    The carrier supports adding custom label messages to an order.
    Example: true

  - `carriers.disabled_by_billing_plan` (boolean)
    The carrier is disabled by the current ShipStation account's billing plan.
    Example: true

  - `carriers.services` (array)
    A list of services that are offered by the carrier

  - `carriers.services.carrier_id` (string)
    A string that uniquely identifies the carrier
    Example: "se-28529731"

  - `carriers.services.carrier_code` (string)
    A string that uniquely identifies a ShipStation resource, such as a carrier, label, shipment, etc.
    Example: "se-28529731"

  - `carriers.services.service_code` (string)
    service code
    Example: "usps_media_mail"

  - `carriers.services.name` (string)
    User friendly service name
    Example: "USPS First Class Mail"

  - `carriers.services.domestic` (boolean)
    Supports domestic shipping
    Example: true

  - `carriers.services.international` (boolean)
    Supports international shipping.
    Example: true

  - `carriers.services.is_multi_package_supported` (boolean)
    Carrier supports multiple packages per shipment
    Example: true

  - `carriers.services.send_rates` (boolean)
    The service provides rates for the shipment.
    Example: true

  - `carriers.packages` (array)
    A list of package types that are supported by the carrier

  - `carriers.packages.package_id` (string)
    A string that uniquely identifies the package.
    Example: "se-28529731"

  - `carriers.packages.package_code` (string, required)
    A [package type] , such as thick_envelope, small_flat_rate_box, large_package, etc.  Use the code package for custom or unknown package types.
    Example: "small_flat_rate_box"

  - `carriers.packages.name` (string, required)
    Example: "laptop_box"

  - `carriers.packages.dimensions` (object)
    The custom dimensions for the package.

  - `carriers.packages.dimensions.unit` (string, required)
    Dimension unit
    Enum: "inch", "centimeter"

  - `carriers.packages.dimensions.length` (number, required)
    The length of the package, in the specified unit
    Example: 2

  - `carriers.packages.dimensions.width` (number, required)
    The width of the package, in the specified unit
    Example: 2

  - `carriers.packages.dimensions.height` (number, required)
    The height of the package, in the specified unit
    Example: 1

  - `carriers.packages.description` (string,null)
    Provides a helpful description for the custom package.
    Example: "Packaging for laptops"

  - `carriers.options` (array)
    A list of options that are available to that carrier

  - `carriers.options.name` (string)
    Name of advanced option
    Example: "contains_alcohol"

  - `carriers.options.default_value` (string)
    Default value of option
    Example: "false"

  - `carriers.options.description` (string)
    Description of option
    Example: "The description"

  - `carriers.send_rates` (boolean)
    The carrier provides rates for the shipment.
    Example: true

  - `carriers.supports_user_managed_rates` (boolean)
    The carrier supports user-managed rates for shipments.
    Example: true

  - `total` (integer, required)
    The total number of items across all pages of results
    Example: 2750

  - `page` (integer, required)
    The current page number of results.  For example, if there are 80 results, and the page size is 25, then page could be 1, 2, 3, or 4.  The first three pages would contain 25 items each, and the fourth page would contain the five remaining items.
    Example: 1

  - `pages` (integer, required)
    The total number of pages of results.  For example, if there are 80 results, and the page size is 25, then pages would be 4.  The first three pages would contain 25 items each, and the fourth page would contain the five remaining items.  If there are no results, then pages will be zero.
    Example: 4

  - `links` (object, required)
    Helpful links to other pages of results

  - `links.first` (object, required)
    The link to the first page of results.  This object will _always_ have an href field. If there are no results, then the first page will contain an empty array of items.

  - `links.first.href` (string, required)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.first.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `links.last` (object, required)
    The link to the final page of results.  This object will _always_ have an href field. If there are no results, then the final page will contain an empty array of items.

  - `links.last.href` (string, required)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.last.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `links.prev` (object, required)
    The link to the previous page of results.  The href field will only be set when the page is 2 or greater.

  - `links.prev.href` (string)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.prev.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `links.next` (object, required)
    The link to the next page of results.  The href field will only be set when the page is less than pages.

  - `links.next.href` (string)
    The URL of the linked resource, if any
    Example: "https://example.com/resource"

  - `links.next.type` (string)
    The type of resource, or the type of relationship to the parent resource
    Example: "child"

  - `request_id` (string, required)
    A UUID that uniquely identifies the request id.
This can be given to the support team to help debug non-trivial issues that may occur
    Example: "aa3d8e8e-462b-4476-9618-72db7f7b7009"

  - `errors` (array, required)
    The errors associated with the failed API call

  - `errors.error_source` (string, required)
    The source of the error, as indicated by the name this informs us if the API call failed because of the
carrier, the order source, the ShipStation API itself, or the underlying ShipEngine platform.
    Enum: "carrier", "order_source", "ShipStation", "shipengine"

  - `errors.error_type` (string, required)
    The type of error
    Enum: "account_status", "business_rules", "validation", "security", "system", "integrations"

  - `errors.error_code` (string, required)
    The error code specified for the failed API Call
    Enum: "auto_fund_not_supported", "batch_cannot_be_modified", "carrier_conflict", "carrier_disconnected", "carrier_not_connected", "carrier_not_supported", "confirmation_not_supported", "default_warehouse_cannot_be_deleted", "field_conflict", "field_value_required", "forbidden", "identifier_conflict", "identifiers_must_match", "insufficient_funds", "invalid_address", "invalid_billing_plan", "invalid_field_value", "invalid_identifier", "invalid_status", "invalid_string_length", "label_images_not_supported", "meter_failure", "order_source_not_active", "rate_limit_exceeded", "refresh_not_supported", "request_body_required", "return_label_not_supported", "settings_not_supported", "subscription_inactive", "terms_not_accepted", "tracking_not_supported", "trial_expired", "unauthorized", "unknown", "unspecified", "verification_failure", "warehouse_conflict", "webhook_event_type_conflict", "customs_items_required", "incompatible_paired_labels", "invalid_charge_event", "invalid_object", "no_rates_returned"

  - `errors.message` (string, required)
    An error message associated with the failed API call
    Example: "Body of request cannot be null."

  - `errors.field_name` (string)
    The name of the field that caused the error (only present for validation errors)
    Example: "inventory_warehouse_id"

  - `errors.field_value` (string)
    The invalid value that was provided for the field (only present for validation errors)
    Example: "invalid-id"

## Response 400 fields (application/json):

  - `request_id` (string, required)
    A UUID that uniquely identifies the request id.
This can be given to the support team to help debug non-trivial issues that may occur
    Example: "aa3d8e8e-462b-4476-9618-72db7f7b7009"

  - `errors` (array, required)
    The errors associated with the failed API call

  - `errors.error_source` (string, required)
    The source of the error, as indicated by the name this informs us if the API call failed because of the
carrier, the order source, the ShipStation API itself, or the underlying ShipEngine platform.
    Enum: "carrier", "order_source", "ShipStation", "shipengine"

  - `errors.error_type` (string, required)
    The type of error
    Enum: "account_status", "business_rules", "validation", "security", "system", "integrations"

  - `errors.error_code` (string, required)
    The error code specified for the failed API Call
    Enum: "auto_fund_not_supported", "batch_cannot_be_modified", "carrier_conflict", "carrier_disconnected", "carrier_not_connected", "carrier_not_supported", "confirmation_not_supported", "default_warehouse_cannot_be_deleted", "field_conflict", "field_value_required", "forbidden", "identifier_conflict", "identifiers_must_match", "insufficient_funds", "invalid_address", "invalid_billing_plan", "invalid_field_value", "invalid_identifier", "invalid_status", "invalid_string_length", "label_images_not_supported", "meter_failure", "order_source_not_active", "rate_limit_exceeded", "refresh_not_supported", "request_body_required", "return_label_not_supported", "settings_not_supported", "subscription_inactive", "terms_not_accepted", "tracking_not_supported", "trial_expired", "unauthorized", "unknown", "unspecified", "verification_failure", "warehouse_conflict", "webhook_event_type_conflict", "customs_items_required", "incompatible_paired_labels", "invalid_charge_event", "invalid_object", "no_rates_returned"

  - `errors.message` (string, required)
    An error message associated with the failed API call
    Example: "Body of request cannot be null."

  - `errors.field_name` (string)
    The name of the field that caused the error (only present for validation errors)
    Example: "inventory_warehouse_id"

  - `errors.field_value` (string)
    The invalid value that was provided for the field (only present for validation errors)
    Example: "invalid-id"


