Sign In

Docs / API Reference

API Reference

Complete Discovery Loop REST API reference. Every endpoint requires a valid API key.

Base URL: https://api.discoveryioop.dance/v1

Access control

Each request needs an Authorization header with a Bearer token. Get an API key via the dashboard at Settings / API keys.

http
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

GET /projects

Lists authenticated-account projects. Returns project objects with id, name, status, and cycle count.

POST /projects

Creates a project. Required: name, objective (maximize or minimize), signal. Optional: target, cost_model, approval_gate.

GET /projects/{project_id}

Retrieves a project by ID with full configuration, parameter-space definition, and current hypothesis-tree summary.

POST /projects/{project_id}/stop

Stops a running project; no new experiments are queued. Existing cycle logs remain preserved and exportable.

Cycles

GET /projects/{project_id}/cycles

Lists a project's experiment cycles, newest first. Pagination accepts limit and before_cycle_id.

GET /projects/{project_id}/cycles/{cycle_id}

Retrieves a cycle with the instrument result, parsed signal value, information-gain score, and rationale for the subsequent selection.

POST /projects/{project_id}/cycles

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

GET /projects/{project_id}/next

Retrieves a project's next recommended experiment: parameter set, information-gain score, and highest-ranked unselected alternatives.

POST /projects/{project_id}/next/approve

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

GET /projects/{project_id}/hypothesis

Retrieves a project's current hypothesis tree as JSON. Each node includes status (active, pruned, converged), cycle count, and evidence summary.

Adapters

GET /adapters

Lists account adapters. Returns adapter ID, name, instrument type, watch path, and last-seen timestamp.

POST /adapters

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.

json
// 400 Bad Request
{
  "error": "validation_error",
  "message": "signal_column is required"
}

// 401 Unauthorized
{
  "error": "invalid_key",
  "message": "API key is invalid or revoked"
}