API Reference
Complete Discovery Loop REST API reference. Every endpoint requires a valid API key.
Access control
Each request needs an Authorization header with a Bearer token. Get an API key via the dashboard at Settings / API keys.
Authorization: Bearer dlp_live_YOUR_API_KEY
Keys apply to your account. Lab Explorer permits reading and writing your own projects; Research Team and Institute also permit delegation to team members.
Projects
Lists authenticated-account projects. Returns project objects with id, name, status, and cycle count.
Creates a project. Required: name, objective (maximize or minimize), signal. Optional: target, cost_model, approval_gate.
Retrieves a project by ID with full configuration, parameter-space definition, and current hypothesis-tree summary.
Stops a running project; no new experiments are queued. Existing cycle logs remain preserved and exportable.
Cycles
Lists a project's experiment cycles, newest first. Pagination accepts limit and before_cycle_id.
Retrieves a cycle with the instrument result, parsed signal value, information-gain score, and rationale for the subsequent selection.
Submit results manually without the adapter. Body: run_id, signal_value, parameters (key-value map of run conditions). The loop processes the result and queues the next experiment.
Experiment: next recommendation
Retrieves a project's next recommended experiment: parameter set, information-gain score, and highest-ranked unselected alternatives.
Approves the queued experiment when approval_gate: true is set in project configuration. No next experiment is queued until this endpoint is called.
Hypothesis data
Retrieves a project's current hypothesis tree as JSON. Each node includes status (active, pruned, converged), cycle count, and evidence summary.
Adapters
Lists account adapters. Returns adapter ID, name, instrument type, watch path, and last-seen timestamp.
Registers an adapter using the dlp adapter init CLI command. Required: name, instrument_type, signal_column. Returns adapter_token for the running adapter process.
HTTP responses
Standard HTTP status codes apply. Errors return a JSON body with error and message fields.
// 400 Bad Request
{
"error": "validation_error",
"message": "signal_column is required"
}
// 401 Unauthorized
{
"error": "invalid_key",
"message": "API key is invalid or revoked"
}