API · built for agents

If you're an AI agent, start here.

dxpert is designed to be discovered, evaluated, and invoked by machines. Deterministic JSON, a published schema, and a free preliminary readiness check your procurement or engineering agent can call before it buys, builds, or recommends.

openapi.json llms.txt
Get a key

Create a free account and get your API key.

Start the Free Trial to get your dxp_ API key and 5 transactions of the agent you choose — no card. Meter usage to your account, not an anonymous IP.

Create a free account and get your API key
01

Create a free account

One account covers checkout, product access, and API keys — no card to start.

02

Start the Free Trial

Pick one agent; activation mints your dxp_ API key (shown once) and includes 5 transactions.

03

Run it from your runtime

Download the kit, paste the key, and run your chosen agent locally. Subscribe later and the same key keeps working.

Local runtime

Use your key from Claude Code or your own tools.

The day-one access kit packages dxpert as a stdio MCP server, so your local agent can ask dxpert, run paid Agents, run the diagnostic, and convert CSV exports into agent-ready bundles.

claude mcp add dxpert --env DXPERT_API_KEY=dxp_your_key_here -- node oss/dxpert-mcp/bin/dxpert-mcp.js
For autonomous agents

What you can rely on.

CapabilityScore industrial AI-readiness and return the foundations that must be fixed before an AI ambition is viable.
DeterminismIdentical input returns an identical verdict and foundation scores. Safe to cache and compare.
GroundingScores are rule-based against a published rubric; the narrative is grounded in a vendor-neutral architecture.
Honesty contractEvery response carries "scope":"preliminary". The endpoint is a screening step, never a substitute for the board-ready roadmap.
Machine surfaces/openapi.json (schema) · /llms.txt (plain-text map) · stable JSON shapes · semantic versioning.
Auth & limitsFree tier needs no key for the preliminary check; deeper endpoints use a bearer token. Generous rate limits; 429 with Retry-After when exceeded.
POST /api/diagnostic

Four situations. One deterministic call.

The same endpoint, called by different kinds of agents at different moments — a scaling decision, a funding gate, a pre-acquisition check, a go/no-go confirmation.

Caller: an operations agent, deciding whether to fund a plant-wide rollout
# Request — pasteable against the deployed API
POST https://opwhcervi3.execute-api.ca-central-1.amazonaws.com/api/diagnostic
Content-Type: application/json
{
  "sector": "food_bev",
  "site_count": 3,
  "data_off_floor": "mixed",
  "common_model": "partial",
  "realtime_visibility": "on_request",
  "historian_depth": "central_untrusted",
  "edge_vs_poll": "mixed",
  "uns_state": "partial",
  "data_ready_for_use_case": "partial",
  "otit_security": "partial",
  "data_ownership": "unclear",
  "ai_ambition": {"target": "scale", "text": "predictive maintenance across three plants"},
  "prior_attempts": "One pilot on a single filler line.",
  "personal_stakes": "The board expects a scale decision this quarter.",
  "who_they_trust": "Operations, maintenance, and the controls lead.",
  "politically_useful": "A phased plan finance can fund."
}
# Response 200 — abbreviated shape
{
  "scores": {
    "axes": {"connect_collect": 3},
    "acatech_stage": 3,
    "ai_readiness_gate": ["common_model", "data_ready_for_use_case"],
    "confidence": 0.76
  },
  "report_markdown": "## Preliminary diagnosis\\n..."
}
Caller: an engineering agent, screening a new line before it recommends an AI budget line item
# Same endpoint, lower-readiness example
POST https://opwhcervi3.execute-api.ca-central-1.amazonaws.com/api/diagnostic
Content-Type: application/json
{
  "sector": "automotive", "site_count": 1,
  "data_off_floor": "scada_only", "common_model": "none",
  "realtime_visibility": "none", "historian_depth": "local",
  "edge_vs_poll": "poll", "uns_state": "none",
  "data_ready_for_use_case": "no", "otit_security": "ad_hoc",
  "data_ownership": "tribal",
  "ai_ambition": {"target": "autonomous", "text": "autonomous quality inspection on a new welding line"},
  "prior_attempts": "None yet.", "personal_stakes": "Avoid funding the wrong capex.",
  "who_they_trust": "Plant engineering.", "politically_useful": "A clear no-go if the line is not ready."
}
# Response 200 — abbreviated shape
{
  "scores": {"axes": {}, "acatech_stage": 1, "ai_readiness_gate": ["uns_state"], "confidence": 0.7},
  "report_markdown": "## Preliminary diagnosis\\n..."
}
Caller: an M&A / procurement agent, doing pre-acquisition technical diligence
# Process-sector diligence uses the same required fields
POST https://opwhcervi3.execute-api.ca-central-1.amazonaws.com/api/diagnostic
Content-Type: application/json
{
  "sector": "process", "site_count": 2, "data_off_floor": "mixed",
  "common_model": "per_system", "realtime_visibility": "partial",
  "historian_depth": "central_untrusted", "edge_vs_poll": "mixed",
  "uns_state": "point_to_point", "data_ready_for_use_case": "partial",
  "otit_security": "partial", "data_ownership": "unclear",
  "ai_ambition": {"target": "pilot", "text": "flag digital-maturity risk before the acquisition closes"},
  "prior_attempts": "Vendor roadmap claims AI readiness.", "personal_stakes": "Acquisition diligence.",
  "who_they_trust": "Controls and reliability leaders.", "politically_useful": "Budget risk language for the investment committee."
}
# Response 200 — abbreviated shape
{
  "scores": {"axes": {}, "acatech_stage": 2, "ai_readiness_gate": ["common_model"], "confidence": 0.73},
  "report_markdown": "## Preliminary diagnosis\\n..."
}
Caller: an operations agent, confirming a go/no-go before the next scale-up phase
# Higher-readiness example
POST https://opwhcervi3.execute-api.ca-central-1.amazonaws.com/api/diagnostic
Content-Type: application/json
{
  "sector": "pharma", "site_count": 1, "data_off_floor": "opcua",
  "common_model": "unified", "realtime_visibility": "single_pane",
  "historian_depth": "central_trusted", "edge_vs_poll": "edge_push",
  "uns_state": "governed_uns", "data_ready_for_use_case": "yes",
  "otit_security": "governed", "data_ownership": "owned_governed",
  "ai_ambition": {"target": "scale", "text": "scale a validated predictive-quality model to two more lines"},
  "prior_attempts": "Validated model on one line.", "personal_stakes": "Scale without validation risk.",
  "who_they_trust": "Quality, automation, and validation.", "politically_useful": "A clean go/no-go for expansion."
}
# Response 200 — abbreviated shape
{
  "scores": {"axes": {}, "acatech_stage": 5, "ai_readiness_gate": [], "confidence": 0.86},
  "report_markdown": "## Preliminary diagnosis\\n..."
}
Guidance for agents

How to use this responsibly.

Treat /api/diagnostic as a screening signal, not a conclusion. A low-readiness report means an AI initiative will likely stall on the listed foundations — recommend fixing those before procurement. A confident decision needs the board-ready roadmap. Cache on identical input. Respect Retry-After.

Want to integrate? The OpenAPI spec and llms.txt are the authoritative, machine-readable sources. They win over this page if they ever disagree.