API reference

Storefront API

Shopper-facing lookups that power delivery choices on your webstore or app. Fetch the delivery options a shopper can pick, live carrier rates for a route, a per-product delivery promise for product pages, the eligible fulfillment or collection locations near a customer, and phone-number validation. Every call is stateless: none of them creates an order or a shipment.

Serverhttps://api.carriyo.comAuthOAuth 2.0 + API KeySpecstorefront.yaml

Storefront

Shopper-facing evaluations for your webstore or app. Given a cart, a product, or a customer location, these lookups return the delivery choices, rates, promises, and pickup or fulfillment locations to show the shopper.

They are stateless: no order or shipment is created. Storefront frontends and headless commerce middleware call them, so they run at higher volume than the per-shipment management endpoints. To manage the delivery options behind these lookups, see the delivery-options endpoints in the Core API.

5 operations · 0 objects

post/storefront/shipping-rates

Get shipping rates

Returns live shipping rates from eligible carriers for a future shipment. Stateless: no shipment is created.

Query parameters

NameTypeRequiredDescription
include_errorsbooleanNoInclude per-carrier `error_details` for carriers that failed to return a rate.
include_breakdownbooleanNoInclude the line-by-line cost `breakdown` in each rate's `estimated_shipping_cost`.
include_markupbooleanNoInclude configured markup in the returned rates.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: shipping-rates-requestrequired
  • merchantstring
    ID of the merchant
  • entity_typestring
    Values:FORWARDREVERSE
  • carrier_accountscarrier-account-request[]required
    List of carrier accounts for which shipping rate is requested.
  • paymentpayment-request
    Payment details including the total value of the shipment and any pending Cash on Delivery amount.
  • customscustoms-object
    Customs declaration details such as total declared value.
  • collectioncollection-object
    Collection details chosen for the shipment, such as scheduled collection date.
  • deliverydelivery-object
    Delivery details chosen for the shipment, such as chosen delivery type and scheduled delivery date.
  • pickuplocation-request | shipping-rate-location-requestrequired
    Pickup address for the shipment. You can either pass a free-form address or a predefined location. For forward shipments, you must pass a predefined pickup location. Carriyo will copy the contact and address fields from the specified location. To specify the location, you can use Carriyo's internal location ID (partner_location_id), or your own location code (partner_location_code) as defined when you created the location in Carriyo. For reverse shipments, you can pass the customer's pickup address as a free-form pickup address.
  • dropoffshipping-rate-location-request | location-requestrequired
    Dropoff address for the shipment. You can either pass a free-form address or a predefined location. For forward shipments, you can pass the customer's dropoff address as a free-form address. For reverse shipments, you must pass a predefined dropoff location. Carriyo will copy the contact and address fields from the specified location. To specify the location, you can use Carriyo's internal location ID (partner_location_id), or your own location code (partner_location_code) as defined when you created the location in Carriyo.
  • itemsshipping-rate-item-request[]
    List of individual items or SKUs in a shipment.
  • parcelsshipping-rate-parcel-request[]required
    (One of parcels or freight required) List of parcels in a B2C shipment.
  • freightobject
    (One of parcels or freight required) List of packages of type pallet or carton in a B2B shipment.
  • custom_attributescustom-attributes
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.

Responses

200Shipping rates from eligible carriers for the requested shipment.Schema: shipping-rates-response
  • shipping_ratesshipping-rate[]

Need the full machine-readable spec? Download the OpenAPI document →

post/storefront/delivery-options

Get delivery options

Returns the delivery options that match the supplied cart or order details at checkout time.

Delivery options are configured per merchant in the Carriyo Dashboard. Each option declares the carrier account that fulfils it, a shipping fee, an estimated delivery window, and a set of optional conditions. This endpoint evaluates the configured conditions against the order details you supply inline and returns the matching options, typically rendered to the shopper as the delivery choices on the checkout page.

Both DELIVERY and COLLECTION options can be returned. The shopper has not chosen between them at this point, so customer represents where the customer is, not where the order is being delivered. For DELIVERY options the customer's location is also the delivery destination; for COLLECTION options it's used to find applicable collection points.

Supplying order details

Pass the order details inline in the request body. Only merchant is required; populate the remaining fields based on which conditions the merchant has configured. This endpoint does not look up existing orders; all order data must be provided directly in the request.

Restricting by delivery method

Pass delivery_methods to limit the response to only the methods you can render. For example, send ["DELIVERY"] from a storefront that doesn't support pickup points, or ["COLLECTION"] from a click-and-collect locator screen. Omit the field to receive all matching methods.

What gets evaluated

Each condition only applies when the merchant has configured it on a delivery option. The corresponding order field is read only if such a condition exists, so callers only need to populate the fields relevant to the rules in use.

| Condition (configured on the option) | Evaluated against |

|---|---|

| Working days / blackout days | order_date (defaults to now); timezone derived from customer.country |

| Customer geography | customer.{country, state, city, area} |

| Order value range | payment.order_total |

| Weight range | Total order weight: sum of line_items[].weight × quantity (converted to kg) |

| Payment type | Derived from payment.payment_on_delivery: CASH_ON_DELIVERY when it is greater than 0, otherwise PRE_PAID |

| Product categories | The line-item categories in the cart. Each category is resolved request-first (line_items[].category), then from the product catalog by product_id. An includes rule matches when a listed category is present; an excludes rule matches when none of the listed categories are present. Matching is case-insensitive |

| Fulfillment location | fulfillment_locations[]. Pass one or more candidate fulfillment locations. An option matches if at least one of the supplied locations is in the option's allowlist (or the option has no allowlist). For a configured Carriyo location, supply either partner_location_code (your own code, recommended for storefront integrations) or partner_location_id (Carriyo's internal ID); free-form address fields are also accepted |

Sorting the results

Results are always coverage-banded first. Options that cover all line items come before options that cover only some; within the partial band, options are ordered by how many line items they cover (most first). This keeps the choices a shopper can fully order at the top.

Within each band, sort_by orders the options:

  • SPEED (default): earliest estimated_arrival_to first.

  • COST: lowest shipping fee first.

Collection points for COLLECTION options

For each matching COLLECTION option, Carriyo also returns a list of eligible collection points (configured Carriyo locations with the collection_location flag enabled) under customer_collection_locations on the response item. Three pieces of input shape the result:

  • customer.coords: when supplied (latitude/longitude), Carriyo computes the distance from the customer to each location and sorts the result nearest-first. Locations without coordinates are excluded from a distance-bound result. When customer coordinates aren't supplied, locations are returned in the merchant-configured order with no distance field.

  • max_collection_distance (request): a client-supplied upper bound on the returned distance. Effective only when customer coordinates are supplied.

  • customer_collection_max_distance (per-option, configured by the merchant): a hard upper bound the merchant authored for this option. Carriyo applies the smaller of this and the request's max_collection_distance when filtering.

The result list is capped at max_collection_locations (defaults to 10 when omitted, capped server-side at 50).

Stock-aware filtering

Set inventory_check to true to filter delivery options by real-time stock. Filtering is effective only when all of the following hold:

  1. inventory_check is true in the request.

  2. Inventory management is enabled for the tenant in Carriyo settings.

  3. The line items carry a product_id (the stock key).

When effective, each delivery option in the response includes:

  • items — only the line items for which sufficient stock exists at locations eligible for that option. Items without available inventory are excluded.

  • fulfillment_locations — the locations that can fulfill the listed items, as {partner_location_id, partner_location_code, partner_location_name} objects. This is the intersection of the option's configured locations and the locations that hold stock.

Location eligibility honors each location's fulfillment coverage, the same zone and radius gating described in Get eligible locations. Radius coverage is matched by distance, so it needs customer.coords in the request. Without customer coordinates, a radius-covered location is never eligible and its stock is invisible to this endpoint. Pass customer coordinates whenever the merchant fulfills from radius-covered locations.

Delivery options that cannot fulfill any of the requested items are omitted entirely from the response.

When stock-aware filtering is not effective (inventory_check is false or omitted, inventory management is disabled, or no product_id is supplied), the endpoint does not filter on stock:

  • items echoes back all request line items with a non-blank id.

  • fulfillment_locations returns the option's configured fulfillment locations as {partner_location_id, partner_location_code, partner_location_name} objects (or is omitted if none are configured).

Response

An array of matching delivery options, each with its carrier account, computed shipping fee, and estimated arrival window, coverage-banded then ordered by sort_by. The array is empty if no configured option matches the supplied order.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: delivery-options-requestrequired
  • merchantstringrequired
    The merchant the order belongs to. The API key must have access to this merchant.
  • order_datestringformat: date-time
    The date the order was placed (ISO 8601). Defaults to the time of the request. Used as the reference date for working-day and blackout-day evaluation.
  • paymentdelivery-options-payment
    Payment details for the order. Drives order_value and payment_type conditions.
  • line_itemsdelivery-options-line-item[]
    The items in the order. weight.value is the weight of a single unit; the total weight for a line is weight.value × quantity. The total order weight used for weight range conditions is the sum of those per-line totals, converted to kg. Set product_id on each line to make stock-aware filtering effective (see inventory_check). Set category to drive product-category conditions; when omitted, the category is resolved from the product catalog by product_id.
  • parcelsdelivery-options-parcel[]
    Parcels in the order. Used by the carrier rate calculator when a matching option's pricing strategy is PASS_THROUGH (i.e., the carrier-quoted rate is shown to the shopper). Not used by condition matching; weight conditions are evaluated against line_items.
  • fulfillment_locationsdelivery-options-address[]
    Candidate locations the order could be fulfilled from (origin/warehouse/store). Pass one or more, and Carriyo returns the options whose fulfillment-location allowlist contains at least one of these (options without an allowlist are unconstrained). Per option, the first matching location is used to drive origin-country-based estimated arrival and, for PASS_THROUGH pricing, the carrier rate quote. Each entry may be a free-form address, or, for a configured Carriyo location, supply partner_location_code (your own code, recommended) or partner_location_id (Carriyo's internal ID), and the rest of the address is populated from the location record.
  • customerdelivery-options-address
    The customer's location. Drives customer-geography conditions and the timezone used for working-day / blackout-day evaluation. Strongly recommended for any non-trivial result. For DELIVERY options this is also the implicit delivery destination. For COLLECTION options it's used to find applicable collection points. The shopper has not chosen between the two at this stage; the field captures where the customer is, not where the order is being delivered.
  • inventory_checkboolean
    Set to true to filter options by real-time stock. Effective only when inventory management is enabled for the tenant and the line items carry product_id. When not effective, no stock filtering is applied.
  • sort_bystring
    Orders the options within each coverage band. SPEED (default) puts the earliest estimated_arrival_to first; COST puts the lowest shipping fee first. Options are always coverage-banded before this ordering is applied.
    Values:SPEEDCOST
  • sort_directionstring
    Direction applied to sort_by. ASC (default) orders soonest/cheapest first; DESC reverses the non-null ordering. Options with no arrival estimate or fee always sort last regardless of direction.
    Values:ASCDESC
  • delivery_methodsstring[]
    Restrict the response to options of the listed methods. When omitted or empty, all methods are returned. Useful when the storefront has separate UI tabs for delivery and click-and-collect, or when the integration only supports one method (e.g., Shopify's standard Carrier Service API has no pickup-point concept, so the Shopify connector sets this to ["DELIVERY"]).
  • max_collection_locationsinteger
    Maximum number of customer collection locations to return per matching COLLECTION option. Defaults to 10 when omitted; capped server-side at 50. Ignored for DELIVERY and DIGITAL options.
  • max_collection_distancedistance
    Client-supplied upper bound on the distance from the customer's location to a returned collection point. The effective cap used by Carriyo is the smaller of this value and any per-option customer_collection_max_distance configured by the merchant. When the customer's coordinates aren't supplied, this cap can't be enforced and is ignored.

Responses

200The delivery options that match the supplied order.
  • idstring
    Unique identifier for this delivery option.
  • delivery_methodstring
    The fulfilment method for this option: - DELIVERY: courier delivers to the customer's address. - COLLECTION: customer collects from a designated location. - DIGITAL: no physical fulfilment. Aligns with FulfillmentOrder.delivery_method on the order model.
    Values:COLLECTIONDELIVERYDIGITAL
  • codestring
    The merchant-defined code identifying the delivery option.
  • namestring
    Display name of the delivery option (shown to the shopper).
  • descriptionstring
  • image_urlstring
    URL to an icon or image associated with the option.
  • carrier_account_idstring
    The Carriyo carrier account that fulfils this option.
  • shipping_feedelivery-options-shipping-fee
  • estimated_arrival_fromstringformat: date-time
    Earliest estimated arrival date/time (ISO 8601).
  • estimated_arrival_tostringformat: date-time
    Latest estimated arrival date/time (ISO 8601).
  • itemsdelivery-option-line-item-ref[]
    The line items from the request that this delivery option can fulfill. Each entry identifies a line item and the quantity that can be fulfilled. When stock-aware filtering is effective (inventory_check is true, inventory management is enabled, and the line items carry product_id), this field reflects only the items for which sufficient stock exists at the option's eligible fulfillment locations. Items with insufficient stock are excluded. If no items can be fulfilled, the entire option is omitted from the response. When stock-aware filtering is not effective, all request line items with a non-blank id are returned here; no stock filtering is applied. A returned option always lists at least one fulfillable item. If the request has no line_items, the option cannot be matched to any item and is omitted from the response entirely rather than returned with an empty items list.
  • fulfillment_locationsresolved-fulfillment-location[]
    The locations that can fulfill the items listed in items for this delivery option, each as a {partner_location_id, partner_location_code, partner_location_name} object. When stock-aware filtering is effective, these are the option's configured fulfillment locations that hold stock for the listed items. When at least one location can fulfill every listed item, only those shared locations are returned; otherwise the field falls back to the union of locations that can fulfill at least one item. When stock-aware filtering is not effective, this returns the option's configured fulfillment locations. Omitted (null) if the option has no configured fulfillment locations.
  • customer_collection_locationscustomer-collection-location[]
    Eligible collection points for this option. Populated only when delivery_method is COLLECTION. Sorted nearest-first when the customer's coordinates are supplied; otherwise returned in the merchant-configured order. May be empty if the option has no linked locations or none are within the effective distance cap.

Need the full machine-readable spec? Download the OpenAPI document →

post/storefront/validate/phone

Validate a phone number

Validates a customer phone number and returns its parsed parts.

Carriyo parses the number with libphonenumber. Pass the number and, when the number is in national format, the country whose dialling rules apply. Use this at checkout to catch a mistyped number before the shopper places the order.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: validate-phone-requestrequired
  • phone_numberstringrequired
    The phone number to validate. Accepts E.164 (+<country><number>) or national format.
  • countrystring
    Two-letter ISO 3166-1 alpha-2 country code. Used to parse a national-format phone_number; not needed when the number is in E.164 format.

Responses

200The parsed phone number and whether it is valid.Schema: validate-phone-response
  • is_validboolean
    Whether the number is a valid, dialable number. Always present.
  • national_numberstring
    The number in national format, without the country dialling code. Present when the number parsed.
  • country_codestring
    Echoes the country supplied in the request. Present when a country was provided (omitted for an E.164 number sent without a country).
  • raw_inputstring
    The phone_number exactly as supplied in the request. Always present.

Need the full machine-readable spec? Download the OpenAPI document →

post/storefront/product-delivery-options

Get per-product delivery options

Returns the delivery options available for each product in a list, so you can show a delivery promise (for example "Get it in 45 minutes") on a product listing or product detail page.

Unlike Get delivery options, which evaluates one cart as a whole, this endpoint evaluates each product on its own from its own fulfillment location. Send the products and the location each one ships from; Carriyo returns the matching delivery options per product.

Choosing the fulfillment location

Set fulfillment_locations at the top level as the default for every product, and override it per product under products[].fulfillment_locations. Reference a configured Carriyo location by partner_location_id or partner_location_code. To find the nearest eligible locations for a customer first, call Get eligible locations.

Category and value

Each product's category is resolved request-first (products[].category), then from the product catalog by product_id. The product's value is unit_price × quantity. Both feed the same option conditions as the cart endpoint. Options priced PASS_THROUGH (a live carrier quote) are omitted from this endpoint.

Stock

Set inventory_check to true to return available_quantity per product. It is effective only when inventory management is enabled for the tenant.

When the check is effective, availability also honors each location's fulfillment coverage (zones or radius, as described in Get eligible locations). A location outside coverage reports available_quantity: 0 and offers no delivery options. Radius coverage is matched by distance, so it needs customer.coords: pass customer coordinates when working with radius-covered locations.

Limits

  • At most 50 products per request.

  • At most 5 fulfillment locations per product.

  • Duplicate product_id values are rejected.

Response

A bare array, one entry per (product, resolved fulfillment location) pair — a product with several resolved locations yields one row per location. Each row carries the resolved location and its delivery_options sorted by sort_by / sort_direction. Rows whose delivery_options is empty are kept (for example when a location can't meet the requested quantity under inventory_check), so every requested product is represented.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: product-delivery-options-requestrequired
  • merchantstringrequired
    The merchant the products belong to. The API key must have access to this merchant.
  • order_datestringformat: date-time
    Reference date for working-day and blackout-day evaluation (ISO 8601). Defaults to the time of the request.
  • currencystring
    ISO 4217 three-letter currency code for product values and returned fees.
  • customerdelivery-options-address
    The customer's location. Drives customer-geography conditions and the timezone for working-day evaluation. Supply coords to drive distance-based option logic.
  • inventory_checkboolean
    Set to true to return available_quantity per product. Effective only when inventory management is enabled for the tenant.
  • fulfillment_locationslocation-request[]
    Default fulfillment locations applied to every product. Reference a configured Carriyo location by partner_location_id or partner_location_code. Override per product under products[].fulfillment_locations.
  • productsproduct-delivery-options-product[]required
    The products to evaluate. Between 1 and 50; duplicate product_id values are rejected.
  • sort_bystring
    Orders each product's delivery_options. SPEED by earliest arrival, COST by lowest fee.
    Values:SPEEDCOST
  • sort_directionstring
    Sort direction applied to sort_by.
    Values:ASCDESC

Responses

200The delivery options available for each product.Schema: product-delivery-options-response
  • product_idstring
  • quantityinteger
  • locationresolved-fulfillment-location
    The fulfillment location resolved for this row.
  • available_quantityintegerformat: int64
    Units in stock for this product at this location. Present only when inventory_check is effective (requested and inventory management enabled for the tenant); set even when 0.
  • delivery_optionsdelivery-option-summary[]
    The delivery options for this product at this location, sorted by sort_by / sort_direction. Empty when no option matches or the location can't fulfill the requested quantity.
400The request failed validation. Returned when `products` is empty or has more than 50 entries, a `product_id` is missing or duplicated, a `quantity` is less than 1, a product resolves to no fulfillment locations or more than 5, or a referenced fulfillment location cannot be found or is not an active fulfillment location (a collection-only location is rejected).

Need the full machine-readable spec? Download the OpenAPI document →

post/storefront/locations

Get eligible locations

Returns the configured Carriyo locations that can serve a customer, so you can find the nearest store or warehouse to fulfill from or offer for collection.

A location is eligible when it is active, the merchant has access to it, and it carries the requested functions flag. How its geography is checked then depends on the function:

  • FULFILLMENT locations are gated by their configured coverage. Zone coverage (fulfillment_zones) qualifies a location when its zones cover the customer's country, state, city, or area terms. Radius coverage (fulfillment_radius) qualifies it when the customer is within the radius; this needs coordinates on both sides, so a location with radius coverage but no coordinates, or a request with no customer.coords, is ineligible. A fulfillment location with neither zones nor radius serves everywhere.

  • COLLECTION locations are not gated by zones or radius. A location qualifies on its collection flag alone; the only geographic constraint is max_distance, which caps how far a pickup point can be from the customer.

Distance and selection order

Supply customer.coords to get a distance on each location and nearest-first selection. The order is fixed: nearest-first when coordinates are supplied, location_code order otherwise; locations with no computable distance select last. Use max_distance (needs coordinates) to cap how far out to look.

Filtering and the cap

Filter by location_type (STORE or WAREHOUSE) and by functions (FULFILLMENT, COLLECTION; defaults to [FULFILLMENT]). One call returns the complete answer, capped by max_locations (default 10, maximum 50) — there are no pages and no way to fetch "the rest"; receiving exactly max_locations items means more may exist, so narrow the filters or raise the cap. page/page_size and sort_by/sort_direction are rejected with 400.

Headers

NameValueRequiredDescription
AuthorizationBearer YOUR-ACCESS-TOKENYesOAuth 2.0 bearer token obtained from `POST /oauth/token`.
x-api-keyYOUR-API-KEYYesYour tenant's API key, issued in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
tenant-idYOUR-TENANT-IDYesYour Carriyo tenant ID, shown in the Carriyo Dashboard. Required on every request except `POST /oauth/token`.
Content-Typeapplication/jsonYesMedia type of the request body.

Request body

Content type: application/jsonSchema: eligible-locations-requestrequired
  • merchantstringrequired
    The merchant whose locations to search. The API key must have access to this merchant.
  • functionsstring[]
    The location functions required. Defaults to [FULFILLMENT].
  • customereligible-locations-customerrequired
    The customer location used to evaluate location coverage and distance.
  • location_typestring
    Restrict to stores or warehouses. Omit to include both.
    Values:STOREWAREHOUSE
  • max_distancedistance
    Upper bound on distance from the customer. Requires customer.coords.
  • max_locationsinteger
    Cap on returned locations. The response is one complete, capped answer in fixed selection order (nearest-first with customer.coords, location_code order otherwise) — there are no pages. Receiving exactly max_locations items means more may exist; narrow the filters or raise the cap.

Responses

200The eligible locations, nearest first (with coords), capped at `max_locations`.Schema: eligible-locations-response
  • location_idstring
    Carriyo's internal location identifier.
  • location_codestring
    The merchant's own location code.
  • location_namestring
  • location_typestring
    Values:STOREWAREHOUSE
  • functionsstring[]
  • custom_attributescustom-attributes
    Custom attributes in the form of a map: {"attribute1" : ["value1", "value2"], "attribute2" : ["value1", "value2"]} Please Note: You can only use custom attributes if you are subscribed to this feature.
  • address1string
  • address2string
  • citystring
  • statestring
  • countrystring
    Two-letter ISO 3166-1 alpha-2 country code.
  • postcodestring
  • areastring
  • coordsnumber[]
    Latitude and longitude as [lat, lng].
  • distancedistance
    Distance from the customer. Null when either side has no coordinates.
400The request failed validation. Returned when `customer` (with a `country`) is missing, `max_distance` is used without `customer.coords`, `max_locations` is outside 1–50, or any of the unsupported `page`/`page_size`/`sort_by`/`sort_direction` fields are sent.

Need the full machine-readable spec? Download the OpenAPI document →