Skip to content

Fetch a Solution report by public share token

GET
/api/solutions/shared/{token}/
curl --request GET \
--url http://localhost:8000/api/solutions/shared/example/

Public, token-gated read of the run’s report — same { manifest, meta, data } shape as GET /api/solutions/runs/<id>/, with meta.clientId and meta.sourceSession redacted (both are auth-gated deep-links). The frontend renders it in mode="shared" (no Share action, shared caption shown). Increments the share’s view counter (atomic via F-expression). 404 for unknown tokens, 410 if the share has an expires_at in the past.

Auth: none — the token in the path is the credential.

  • None
token
required
string
Media typeapplication/json

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
manifest
required

The SolutionDefinition.

object
key
additional properties
meta
required

ShellComponentMeta — title/subtitle/branding/sourceSession/cameraView.

object
key
additional properties
data
required

ReportData — { blockId: payload } assembled from the run’s sessions.

object
key
additional properties
Examplegenerated
{
"manifest": {
"additionalProperty": "example"
},
"meta": {
"additionalProperty": "example"
},
"data": {
"additionalProperty": "example"
}
}
Media typeapplication/json
object
detail
required

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).

string
Examplegenerated
{
"detail": "example"
}
Media typeapplication/json
object
detail
required

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).

string
Examplegenerated
{
"detail": "example"
}