Access to the API is provisioned by invitation: you’re invited to set a password for a username (usually your company email), and given an environment URL that looks like
https://<env>.kardinal.ai (for example https://app.kardinal.ai). There is currently no self-serve sign-up flow — if you don’t have credentials yet, contact your Account Executive or api@kardinal.ai.Step 1 — Authenticate
Kardinal uses JWT authentication. Exchange your username and password for anaccess_token:
Response
access_token — every following request uses it as a bearer token. It’s valid for one hour; see Authentication and API keys for how to refresh it.
Step 2 — Submit a minimal plan
A plan is created with a singlePUT request (this doubles as create and update — see How the optimization engine works). Here is the smallest viable plan: one resource and three pickup-only orders in Paris.
-F "file=@plan.json") instead of an inline -d body, and as XLSX instead of JSON — column names in the spreadsheet match the JSON field names.
As soon as the plan is accepted, optimization starts automatically — there’s no separate “start” call.
Step 3 — Retrieve the solution
item field and gives you, per resource, the ordered list of stops (tours[].wayPoints) with arrival/departure times, plus any stop that couldn’t be planned:
Response (abridged)
status field until optimization settles (see the polling workflow in How the optimization engine works).
Next steps
- Update
test_planagain with the sameidto see interactive re-optimization in action — read How the optimization engine works first to understand what happens on update. - Add time windows, capacities, and skills to your orders and resources — see the full data model reference.
- Move from crow-fly (
fly) to a real vehicle profile (car,truck) before going further than a smoke test.