Estimate Placement Transport Costs
POST/api/amazon/:integrationInstance/draft-inbound-plans/:draft_inbound_plan/placement-transport-estimates/estimate
Kicks off a fresh own-carrier transport estimate for every OFFERED placement option on the draft inbound plan. Queues a background job (the estimate runs dozens of carrier rate calls, so it is taken off the request thread) and returns a job id (tracked_job_log_id) for polling progress.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
For each placement option the job rates every shipment against the connected carriers, keeps the cheapest quote per shipment, and sums them per option — letting you compare Amazon's placement fee plus your own transport cost across options. Results persist per option and are read back instantly via GET .../placement-transport-estimates.
The estimate is intentionally rough: parcels are derived from product weights/dimensions (or the plan's box configuration when available); the real box configuration confirmed later is authoritative. No request body or query parameters.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.