Kardinal website screenshot

Kardinal

Kardinal is a Paris-based logistics optimization company whose Always-on Route Optimization (ARO) API solves vehicle routing problems for last-mile delivery, post and parcel, waste and bulk transport, fresh delivery, field services and retail operators. Integrators submit a plan — resources (vehicles), orders (stops) and constraints such as capacities, time windows, driver skills and breaks — with a single idempotent PUT, and the engine optimizes it continuously rather than in a nightly batch, so new orders, cancellations, traffic and field updates are absorbed into the running solution instead of forcing a rerun. The REST API is documented with a published OpenAPI 3.0.3 definition covering 40 operations across authentication, plans, resources, orders and solutions, and is reachable per customer environment at https://.kardinal.ai/api/v2 using short-lived JWT bearer tokens.

Kardinal publishes 8 APIs on the APIs.io network, including Authenticate API, Core API, Management API, and 5 more. Tagged areas include Company, Software-as-a-Service, Route Optimization, Vehicle Routing, and Last Mile Delivery.

Kardinal’s developer surface includes documentation, API reference, getting-started guide, support, engineering blog, pricing, FAQ, and 25 more developer resources.

47.4/100 developing ▬ flat Agent 36/100 agent ready saas Full breakdown ↓
scored 2026-09-08 · rubric v0.20.0
AccessFreeSelf serve⚡ Free to try
1 APIs 1 MCP Servers
CompanySoftware-as-a-ServiceRoute OptimizationVehicle RoutingLast Mile DeliveryLogisticsSupply ChainTransportationFleet ManagementOptimization

What this lets a business do 1

Business capabilities this provider's published APIs can perform, derived from its own contracts. Browse all capabilities →

Transport Operations Management
BC-2420
CorePlanSimplePlanSolution
PUT /agencies/{agencyId}/plans/{planId} GET /agencies/{agencyId}/plans/{planId}/solution GET /agencies/{agencyId}/plans/{planId}/solution/objectives POST /agencies/{agencyId}/simplePlans

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-09-08 · rubric v0.20.0
Create-or-Update Ergonomics applies to this provider. This API accepts writes, so it carries 10 points of the composite. It is scored from the published contracts themselves: whether a caller can create-or-update in one call, whether the write accepts a key the caller already holds, and whether the response says which branch ran. Without that, every write needs a search-and-branch in front of it, and the first time that check is skipped a duplicate record is created. Scored against the observed mean rather than raw — a provider at the catalog average is unchanged by this facet, not penalised by it.
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. Every facet and dimension name above is a link: it opens that measurement's own page — what it means, the exact checks that feed it, how the whole catalog distributes on it, and the providers at the top of it. This rating is computed from github.com/api-evangelist/kardinal: open an issue to ask a question, or submit a pull request to add artifacts. Submit an artifact on GitHub — free → Manage your own listing — the Influence plan, $499/mo →

APIs 8

Individual APIs this provider publishes, each with its own machine-readable definition.

Kardinal Authenticate API

How to authenticate, and manage the access and refresh tokens.

Kardinal Core API

The Core API from Kardinal — 4 operation(s) for core.

Kardinal Management API

The Management API from Kardinal — 5 operation(s) for management.

Kardinal Order API

How to create, retrieve, update and delete orders in a plan.

Kardinal Plan API

How to create, retrieve, update and delete plans.

Kardinal Resource API

How to create, retrieve, update and delete resources in a plan.

Kardinal Simple Plan API

How to create a plan through the use of a simple plan.

Kardinal Solution API

The Solution API from Kardinal — 2 operation(s) for solution.

Scroll for all 8

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Kardinal Rate Limits

0 limits

RATE LIMITS

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Kardinal Authentication

http · 5 schemes

SECURITY

Kardinal Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Kardinal Agentic Access

40 operations · 26 acting · 4 human-in-the-loop

40 operations · 26 acting

AGENTIC

Resources

Get Started 3

Portal, sign-up, and the first successful call

Documentation 2

Reference material describing how the API behaves

Agent Surfaces 4

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 6

Pagination, idempotency, versioning, errors, and events

Build 2

SDKs, sample code, and the tooling you integrate with

Access & Security 2

Authentication, authorization, and security posture

Operate 2

Status, limits, changes, and where to get help

Commercial 5

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Other 3

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: kardinal
name: Kardinal
description: Kardinal is a Paris-based logistics optimization company whose Always-on Route Optimization (ARO) API solves
  vehicle routing problems for last-mile delivery, post and parcel, waste and bulk transport, fresh delivery, field services
  and retail operators. Integrators submit a plan — resources (vehicles), orders (stops) and constraints such as capacities,
  time windows, driver skills and breaks — with a single idempotent PUT, and the engine optimizes it continuously rather than
  in a nightly batch, so new orders, cancellations, traffic and field updates are absorbed into the running solution instead
  of forcing a rerun. The REST API is documented with a published OpenAPI 3.0.3 definition covering 40 operations across authentication,
  plans, resources, orders and solutions, and is reachable per customer environment at https://<env>.kardinal.ai/api/v2 using
  short-lived JWT bearer tokens.
deliveryModel:
  model: saas
  open_source: false
  commercial: true
  callable_host: false
  label: Hosted service · you call their endpoint
  confidence: medium
  source:
  - openapi
  - pricing
  generated: '2026-08-28'
  method: derived
accessModel:
  pricing: free
  onboarding: self-serve
  trial: false
  try_now: true
  public: false
  label: Free · Self-serve signup
  confidence: high
  source:
  - plans
  - authentication
  - rate-limits
  - security
  - sandbox
  generated: '2026-09-02'
  method: derived
image: https://kardinal.ai/wp-content/uploads/2020/01/cropped-Icon-blue-270x270.png
url: https://raw.githubusercontent.com/api-evangelist/kardinal/refs/heads/main/apis.yml
x-type: company
x-source: serena-portfolio
x-enrichment:
  date: '2026-08-17'
  status: enriched
  artifacts_added: 27
  pass: local-v1
specificationVersion: '0.23'
created: '2026-08-17'
modified: '2026-08-17'
tags:
- Company
- Software-as-a-Service
- Route Optimization
- Vehicle Routing
- Last Mile Delivery
- Logistics
- Supply Chain
- Transportation
- Fleet Management
- Optimization
tags_raw:
- Company
- SaaS
- Route Optimization
- Vehicle Routing
- Last Mile Delivery
- Logistics
- Supply Chain
- Transportation
- Fleet Management
- Optimization
apis:
- aid: kardinal:kardinal-authenticate-api
  name: Kardinal Authenticate API
  description: How to authenticate, and manage the access and refresh tokens.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - Authenticate
  properties:
  - type: OpenAPI
    url: openapi/kardinal-authenticate-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
- aid: kardinal:kardinal-core-api
  name: Kardinal Core API
  description: The Core API from Kardinal — 4 operation(s) for core.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - Core
  properties:
  - type: OpenAPI
    url: openapi/kardinal-core-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
- aid: kardinal:kardinal-management-api
  name: Kardinal Management API
  description: The Management API from Kardinal — 5 operation(s) for management.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - Management
  properties:
  - type: OpenAPI
    url: openapi/kardinal-management-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
- aid: kardinal:kardinal-order-api
  name: Kardinal Order API
  description: How to create, retrieve, update and delete orders in a plan.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - Order
  properties:
  - type: OpenAPI
    url: openapi/kardinal-order-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
- aid: kardinal:kardinal-plan-api
  name: Kardinal Plan API
  description: How to create, retrieve, update and delete plans.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - Plan
  properties:
  - type: OpenAPI
    url: openapi/kardinal-plan-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
- aid: kardinal:kardinal-resource-api
  name: Kardinal Resource API
  description: How to create, retrieve, update and delete resources in a plan.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - Resource
  properties:
  - type: OpenAPI
    url: openapi/kardinal-resource-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
- aid: kardinal:kardinal-simpleplan-api
  name: Kardinal Simple Plan API
  description: How to create a plan through the use of a simple plan.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - SimplePlan
  properties:
  - type: OpenAPI
    url: openapi/kardinal-simpleplan-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
- aid: kardinal:kardinal-solution-api
  name: Kardinal Solution API
  description: The Solution API from Kardinal — 2 operation(s) for solution.
  humanURL: https://developers.kardinal.ai/
  baseURL: https://app.kardinal.ai/api/v2
  tags:
  - Solution
  properties:
  - type: OpenAPI
    url: openapi/kardinal-solution-api-openapi.yml
  - type: Documentation
    url: https://developers.kardinal.ai/
  - type: APIReference
    url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
  - type: GettingStarted
    url: https://developers.kardinal.ai/getting-started/first-api-call
  - type: Authentication
    url: authentication/kardinal-authentication.yml
  - type: ErrorCatalog
    url: errors/kardinal-error-codes.yml
  - type: DataModel
    url: data-model/kardinal-data-model.yml
  - type: ToolCrosswalk
    url: mcp/kardinal-tool-crosswalk.yml
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
- FN: APIs.json
  email: info@apis.io
common:
- type: CapabilityMap
  url: capabilities/kardinal-capability-edges.yml
  name: Kardinal Business Capability Map
- type: Website
  url: https://kardinal.ai/
- type: DeveloperPortal
  url: https://developers.kardinal.ai/
- type: Documentation
  url: https://developers.kardinal.ai/
- type: APIReference
  url: https://developers.kardinal.ai/api-reference/authenticate/request-a-password-token
- type: GettingStarted
  url: https://developers.kardinal.ai/getting-started/first-api-call
- type: Support
  url: https://kardinal.ai/contact/
- type: Blog
  url: https://kardinal.ai/blog/
- type: BlogRSS
  url: https://kardinal.ai/feed/
- type: GitHubOrganization
  url: https://github.com/KardinalAI
- type: Pricing
  url: https://kardinal.ai/route-optimization-api/
- type: TermsOfService
  name: Terms of Service (Laskar mobile application)
  url: https://kardinal.ai/terms-of-service-laskar/
- type: PrivacyPolicy
  url: https://kardinal.ai/privacy-policy/
- type: LegalNotice
  url: https://kardinal.ai/legal-notice/
- type: FAQ
  url: https://kardinal.ai/fr/faq-route-optimization/
- type: MCPServer
  url: mcp/kardinal-mcp.yml
- type: ToolCrosswalk
  url: mcp/kardinal-tool-crosswalk.yml
- type: AgentCard
  url: a2a/kardinal-a2a.yml
- type: AgentSkill
  url: skills/_index.yml
- type: LLMsTxt
  url: llms/kardinal-llms.txt
- type: Authentication
  url: authentication/kardinal-authentication.yml
- type: Conventions
  url: conventions/kardinal-conventions.yml
- type: Idempotency
  url: conventions/kardinal-conventions.yml
- type: ErrorCatalog
  url: errors/kardinal-error-codes.yml
- type: Lifecycle
  url: lifecycle/kardinal-lifecycle.yml
- type: Conformance
  url: conformance/kardinal-conformance.yml
- type: DataModel
  url: data-model/kardinal-data-model.yml
- type: Sandbox
  url: sandbox/kardinal-sandbox.yml
- type: Plans
  url: plans/kardinal-plans-pricing.yml
- type: Overlay
  url: overlays/kardinal-aro-overlay.yaml
- type: AgenticAccess
  url: agentic-access/kardinal-agentic-access.yml
- type: DomainSecurity
  url: security/kardinal-domain-security.yml

Work with this as data

Every provider here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for providers

9 MCP tools reach this
  • find_providersBrowse and filter every provider in the catalog.
  • get_provider_artifactsEvery artifact this provider publishes, grouped by type.
  • get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
  • get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
  • get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
  • get_provider_ratingPRO — composite, band, trend and facet scores.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This provider
curl "https://apis.io/api/v1/providers/kardinal"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/kardinal/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/kardinal/evidence"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.