API · run documents · MCP

Systems move in events. Integrations should move in explicit contracts.

The canonical DES application owns machine-readable catalogs, solve requests, stable run routes, and artifacts below /des. Agent tools sit beside that HTTP surface rather than silently inventing simulation semantics.

Canonical prefix: /desStable run and artifact IDsNo dedicated client package yet

Choose an integration

Inspect the catalog, submit a solve, or invoke a bounded tool.

These examples are grounded in the current des-web.rs route contract and public MCP architecture. They are labeled as integrations—not as a client matrix that does not yet exist.

solve.ts
const solve = await fetch(baseUrl + "/des/api/v1/solve", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    model: "routing",
    vehicles: 4,
    stops,
    objective: "minimize-total-distance",
  }),
}).then((response) => response.json());

const result = await fetch(
  baseUrl + "/des/api/v1/solve/" + solve.id,
).then((response) => response.json());

The canonical public route is mounted below /des; the gateway owns the prefix and the application owns the API.

Ownership boundary

The app owns routes. Engines own simulation behavior. Infrastructure owns ingress.

catalog→request→engine→run ID→artifact

This keeps public URLs stable while model implementations, Kubernetes deployment, and compatibility redirects evolve independently.