Get a Solution's sample report
const url = 'http://localhost:8000/api/solutions/example/sample/';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8000/api/solutions/example/sample/ \ --header 'Authorization: Bearer <token>'The assembled report ({ manifest, meta, data }) for the Solution’s seeded demo run — used by the Detail page to preview what the report looks like before producing one. Same shape as the produced-run report; built from synthetic demo data only. 404 when no demo run exists for the slug (the FE falls back to a static placeholder).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”GET /api/solutions/runs/<id>/ — the produced report. manifest,
meta, and data are open objects: the @aikynetix/ui renderer owns
the block shapes, and data (ReportData) is keyed by block id. Absent
block ids render as empty (the renderer’s BlockSlot skips them).
object
The SolutionDefinition.
object
ShellComponentMeta — title/subtitle/branding/sourceSession/cameraView.
object
ReportData — { blockId: payload } assembled from the run’s sessions.
object
Examplegenerated
{ "manifest": { "additionalProperty": "example" }, "meta": { "additionalProperty": "example" }, "data": { "additionalProperty": "example" }}object
Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).
Examplegenerated
{ "detail": "example"}