validation-server checkout.
Available now
| Product primitive | Current API surface |
|---|---|
| Spin up twins only | /validate/twins/* |
| Deploy a repo branch or PR into a sandbox | /sandboxes/* |
| Run a browser agent against a frontend | /runner/runs/* |
| Save and run tests | /runner/tests/* |
| Scenarios | /scenarios/* |
| GitHub CI checks | /validation/github/* and /validation/pr |
| Logs and artifacts | /runs/*, /validate/{run_id}/results, artifact endpoints |
Gaps to consider
| Note | Current state |
|---|---|
| Runner compatibility alias | /demo-runner/* is still mounted as a deprecated alias for /runner/*. New clients should use /runner/*. |
| Scenario twin environments | Production exposes /scenarios/{scenario_id}/twin-environment endpoints even though this local validation-server checkout does not mount them. Treat the scenario twin environment docs as production-valid, and use /validate/twins/provision with both twins and scenario_id when you need a locally verifiable fallback from this checkout. |
| SDK-native CI checks | No separate CI endpoint exists for “use only twins from CI.” Today you can call the twins, scenarios, tests, sandboxes, and logs APIs from CI, or use the existing GitHub validation endpoints. |
| Public URL validation workflow | POST /validate/url-run exists, but it overlaps with runner runs and is not included as a core public primitive here. |

