This page is the public API reference landing page for ProofTrail.
It does not try to restate every schema inline. Its job is simpler: explain which API families exist, what lane they belong to, and where to look next when you need the exact contract.
If you are integrating ProofTrail from another tool, start with this order:
contracts/openapi/api.yaml for the exact schema contractnode --import tsx contracts/scripts/generate-client.ts --verify
Think of it like plumbing versus appliances:
You should not treat those as interchangeable.
If your real question is:
How would a Codex-style workflow call this directly?How would a Claude Code style agent use browser automation through HTTP instead of MCP?How would an OpenHands runtime call this as a browser subsystem?How would an OpenClaw gateway keep browser work in a separate backend?the truthful answer is: use this API layer when you want direct contract-level control and keep the coding agent outside ProofTrail.
If you reached this page from a Codex, Claude Code, OpenHands, OpenCode, or OpenClaw workflow, the same rule still applies:
ProofTrail is the browser-evidence contract layer in that setup, not the vendor-specific shell.
For the shortest repo-native contract check, run:
pnpm test:contract
That command validates the checked-in contract tests and the generated-client
freshness gate together. Add pnpm contracts:check-openapi-coverage when you
want the broader endpoint coverage check as well.
ProofTrail’s API is part of an evidence-first browser automation platform with recovery and MCP.
That means the API should be read through the same lane model as the product:
Do not collapse those records into one object model just because they can all appear in the same user story.
contracts/openapi/api.yamlProofTrail Platform APIGET /health/diagnosticsGET /health/alertsGET /api/automation/commandsGET /api/automation/tasksPOST /api/automation/runGET /api/templatesGET /api/templates/{template_id}/readinessGET /api/profiles/studioPATCH /api/profiles/studio/profiles/{profile_name}PATCH /api/profiles/studio/targets/{target_name}POST /api/reconstruction/previewPOST /api/reconstruction/generateGET /api/runsGET /api/runs/{run_id}/recover-planGET /api/evidence-runsGET /api/evidence-runs/latestGET /api/evidence-runs/{run_id}GET /api/evidence-runs/{run_id}/compare/{candidate_run_id}GET /api/evidence-runs/{run_id}/share-packGET /api/evidence-runs/{run_id}/explainGET /api/evidence-runs/{run_id}/promotion-candidateIf you want the shortest path to prove you are talking to the right backend, use these calls first:
curl http://127.0.0.1:17380/health/diagnostics
curl http://127.0.0.1:17380/api/evidence-runs/latest
curl http://127.0.0.1:17380/api/automation/commands
What each one tells you:
/health/diagnostics
gives runtime health and task counters/api/evidence-runs/latest
tells you whether the canonical evidence surface already has a latest retained run/api/automation/commands
shows the low-level automation command catalog instead of forcing you to guess command idsIf you are integrating from TypeScript, the repo already checks in generated web client artifacts under:
apps/web/src/api-gen/client.tsapps/web/src/api-gen/api/automation.tsapps/web/src/api-gen/api/command-tower.tsapps/web/src/api-gen/api/health.tsThe freshness gate is the generator itself:
node --import tsx contracts/scripts/generate-client.ts --verify
When that passes, the generated client is aligned with the checked-in OpenAPI contract.
Treat that client as a repo-local helper surface, not as a published SDK.
Use API when:
Use MCP when:
For Codex-, Claude Code-, OpenHands-, OpenCode-, OpenClaw-, and other AI-agent-shell workflows, the decision rule stays the same:
The API is the contract layer.
The MCP server is the governed tool layer built on top of that contract.
For named agent ecosystems, the split is simplest when you read it like this:
For the dedicated search-intent landing page, see ProofTrail for Coding Agents and Agent Ecosystems.
If you are new to the product, do not start from raw endpoint enumeration.
Use this order instead:
contracts/openapi/api.yamlnode --import tsx contracts/scripts/generate-client.ts --verifyThat order helps you understand what the API is for before you study the exact shapes.