The Autolane Sandbox is a fully isolated environment for integration development. Same /dd/v1/* API surface as production, same request/response shapes, same webhooks. The difference is that every delivery is fulfilled by a synthetic autonomous vehicle you control from the Autolane Portal instead of a real driver.
Use the sandbox to:
The path surface is identical to production. Only the host changes.
deliveries:read, deliveries:write, webhooks:manage), and click Create.Sandbox keys can only be used against api-sandbox.goautolane.com. Using a sandbox key against the production host (or vice versa) returns 403 WRONG_ENV_KEY.
x-retailer-idUse the site UUID shown in the Autolane Portal while it is in dev mode. The portal lists your organization’s sites separately for each environment; the “dev mode” badge confirms which environment you’re currently configuring. When you promote to production, check the production listing for the site you want to call against and use that UUID with your production key.
Every sandbox retailer is pre-provisioned with one synthetic vehicle and one synthetic supervisor driver, both flagged with is_synthetic = true server-side. When you create a delivery in the sandbox:
SCHEDULED status with is_autonomous = true.admin_test_order_meta.driver_mode = 'synthetic' so no production dispatch path can ever reach it.You will not see any of this assignment metadata in the public API response. The order behaves like a regular Direct Delivery order from your code’s perspective. The difference shows up in the lifecycle: you advance it.
The two-step quote-then-create flow is identical to production. A normal happy-path request looks the same:
Every unavailable_reason the production API can return is reachable in the sandbox by varying request input. No special flag, no admin lever; just the same logic.
Once a sandbox delivery is created, you advance it through pickup states from the Autolane Portal. Open the delivery in the portal’s Test Deliveries view, then use the Advance button to step the synthetic pickup forward one state at a time:
Each click advances exactly one state and fires the corresponding pickup_status.changed webhook at your registered URL (if you’ve subscribed to the event). You can also cancel from the portal at any non-terminal state, which fires pickup_status.changed with status: "CANCELLED".
There is no public API endpoint for advancing a sandbox pickup. The advance flow is intentionally portal-only so that integrations exercise their webhook handlers, not a server-driven simulation loop.
Webhook delivery in sandbox is the same code path as production: same X-Autolane-Signature HMAC-SHA256 over the body, same X-Autolane-Delivery-Id UUID stable across retries, same 5-attempt 30-second-base exponential backoff, same 50-consecutive-failure auto-disable + email notification.
Recommended workflow:
ngrok or cloudflared tunnel to localhost is fine; the URL just needs to be HTTPS).pickup_status.changed (and pickup.vehicle_location.changed if you’re building a live-map UI).pickup_status.changed arrives at your endpoint, your signature verification passes, and your idempotency logic handles re-delivered events correctly.The portal’s Test Deliveries view also shows a per-delivery event log. Each row is one outbound webhook attempt (HTTP status, response body, latency, error message if any) so you can correlate what we sent against what your endpoint received.
When you’re ready to launch:
env:production marker and only work against https://api.goautolane.com.403 WRONG_ENV_KEY).x-retailer-id maps to the production site UUID. The portal’s production view and dev-mode view list sites separately; do not reuse a sandbox UUID against the production host. Pull the UUID from the production listing.If anything looks different between sandbox and production behavior, please report it; the contract is meant to be byte-identical except for the items in the table above.