Skip to main content
POST
Predict Checkout EDD

Authorizations

Authorization
string
header
required

The same Bearer token as the Public API v5 — generate it with POST /auth/oauth/token/.

Body

application/json
from_address
object
required

Origin (from_address) or destination (to_address) of the potential shipment. country_code (preferred) or country is required; city and postal code markedly improve predictions. Fields other than country and postal code are stored with the checkout event and forwarded to the model — they are not normalized and not carried over to the Shipment.

to_address
object
required

Origin (from_address) or destination (to_address) of the potential shipment. country_code (preferred) or country is required; city and postal code markedly improve predictions. Fields other than country and postal code are stored with the checkout event and forwarded to the model — they are not normalized and not carried over to the Shipment.

carrier_reference
string[]

Carrier references from Settings > Carriers — a non-empty list even for a single value (an empty list is rejected). One EDD entry is returned per value, so you can compare carriers in one call. An unconfigured value rejects the whole request. Used only for the prediction — send carrier_reference again at Create Shipment.

Required array length: 1 - 50 elements
Required string length: 1 - 50
shipping_service
string[]

The carrier's service level (e.g. standard, express) — a list even for a single value. Only one of carrier_reference and shipping_service may contain more than one value in the same request.

Maximum string length: 50
merchant_id
string

Identifier of the merchant/supplier on your platform. Strongly recommended for marketplaces — fulfillment speed varies by merchant.

Maximum string length: 50
order_target_time
string

The order time to calculate the EDD from; defaults to the time the request is received. Send a local wall-clock time (YYYY-MM-DDThh:mm:ss, no offset) and name the zone in order_target_timezone. With an offset or Z, the value is first normalized to UTC and that wall-clock time is then interpreted in order_target_timezone.

order_target_timezone
string

IANA timezone of order_target_time. Defaults to UTC; invalid IDs are rejected.

Maximum string length: 50
order_source_type
string
Maximum string length: 100
order_source_name
string
Maximum string length: 100
shipment_value
string

Total value of the items as <number> <CURRENCY> with a valid ISO 4217 code, e.g. 35.50 SGD. Values without the space, or with extra characters, are rejected.

Maximum string length: 50
item_count
integer
expected_delivery_from
string

Start of a delivery window you already promised, if any. Use this field alone for a single expected date. ISO 8601; read as UTC without an offset.

expected_delivery_to
string

Requires expected_delivery_from. ISO 8601.

line_items
object[]

Items at the checkout stage. NOT carried over to a created Shipment.

prediction_payload
object

Extra model inputs agreed with the Perform.AI data team during your POC. Three keys are also read by the platform when selecting your model and fulfillment rules — handling_instructions (parcel type/handling class, e.g. Paket; required for some models), warehouse_ref (your warehouse identifier, selects processing-time rules), and carrier_service (carrier service code for fulfillment rules). A key must not appear both here and at the top level of the request — that is rejected.

Response

Prediction generated — one data entry per requested carrier reference, each with its own checkout_id.

api_response
integer

200 on success. Note: this service returns api_response as a number.

request_id
string | null

Correlation ID (echoed from an X-Request-Id request header when present). Quote it when contacting support.

data
object[]