# List rate shoppers

Retrieve rate shoppers for the authenticated seller. By default this
returns both the default rate shoppers (cheapest, fastest, best_value)
and any custom rate shoppers. Use the type parameter to filter.

Endpoint: GET /v1/rate_shoppers
Version: 1.1.202604070904
Security: api_key

## Query parameters:

  - `type` (string)
    Filter rate shoppers by type. When set to custom, only
seller-created rate shoppers are returned (excludes defaults).
When omitted, both default and custom rate shoppers are returned.
    Enum: "custom"

  - `sort_by` (string)
    Field to sort results by. Sorting only applies to custom rate
shoppers; default rate shoppers are always listed first.
    Enum: "name", "created_at"

  - `sort_dir` (string)
    Sort direction.
    Enum: "asc", "desc"

## Response 200 fields (application/json):

  - `rate_shoppers` (array, required)
    The list of rate shoppers. Default rate shoppers appear first, followed by custom ones.

  - `rate_shoppers.rate_shopper_id` (string, required)
    Identifier for the rate shopper. For default rate shoppers this is
a strategy name (cheapest, fastest, best_value). For custom
rate shoppers this is a UUID.
    Example: "cheapest"

  - `rate_shoppers.name` (string, required)
    Display name of the rate shopper.
    Example: "Cheapest"

  - `rate_shoppers.services` (array, required)
    The carrier services included in this rate shopper.

  - `rate_shoppers.services.service_code` (string, required)
    The carrier service code.
    Example: "usps_priority_mail"

  - `rate_shoppers.services.carrier_id` (string, required)
    The carrier account ID (prefixed with se-).
    Example: "se-28529731"

  - `rate_shoppers.transit_time` (object)
    Transit time constraints for rate selection.

  - `rate_shoppers.transit_time.max_days` (integer,null)
    Maximum transit days for domestic shipments.
    Example: 5

  - `rate_shoppers.transit_time.max_days_international` (integer,null)
    Maximum transit days for international shipments.
    Example: 14

  - `rate_shoppers.transit_time.use_deliver_by_date` (boolean)
    Whether to use the order's deliver-by date for filtering.

  - `rate_shoppers.service_preference` (object)
    Preferred service and price tolerance settings.

  - `rate_shoppers.service_preference.service` (object)
    A carrier service entry in a rate shopper.

  - `rate_shoppers.service_preference.price_tolerance` (object)
    Price tolerance thresholds for the preferred service.

  - `rate_shoppers.service_preference.price_tolerance.amount` (number, required)
    Maximum absolute price difference allowed.
    Example: 2.5

  - `rate_shoppers.service_preference.price_tolerance.percentage` (number, required)
    Maximum percentage price difference allowed.
    Example: 10

  - `rate_shoppers.is_active` (boolean, required)
    Whether the rate shopper is currently active.
    Example: true

  - `rate_shoppers.created_at` (string, required)
    Timestamp when the rate shopper was created.
    Example: "2025-01-15T10:30:00Z"

  - `rate_shoppers.updated_at` (string, required)
    Timestamp when the rate shopper was last updated.
    Example: "2025-03-20T14:45:00Z"

## 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, or the ShipEngine API itself.
    Enum: "carrier", "order_source", "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", "file_not_found", "shipping_rule_not_found", "service_not_determined", "no_rates_returned", "funding_source_registration_in_progress", "insurance_failure", "funding_source_missing_configuration", "funding_source_error", "freight_connection_inactive", "freight_provider_id_required", "freight_provider_already_connected", "freight_shipment_not_found", "freight_tracking_not_available", "freight_tracking_not_found", "freight_shipment_not_batchable"

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

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

  - `errors.carrier_code` (string)
    The name of the shipping carrier that generated the error, such as fedex, dhl_express, stamps_com, etc.
    Example: "dhl_express"

  - `errors.field_name` (string)
    The name of the field that caused the error
    Example: "shipment.ship_to.phone_number"


