HTTP API
Generated endpoint, request, response, authentication, and schema reference.
The HTTP API is generated from FastAPI's canonical OpenAPI document. Browser commands use the generated client; this page does not define a second contract.
- Contract title: Lumen API
- Contract version:
0.0.0 - Endpoint count: 10
Endpoints
GET /api/development-project
Development Project
Authentication: Required by the named OpenAPI security scheme.
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | ProjectProjection | Successful Response |
| 401 | ErrorDetail | Authentication failed. |
GET /api/projects/{project_id}
Project Projection
Authentication: Required by the named OpenAPI security scheme.
Parameters
| Name | Location | Required | Type | Constraints |
|---|---|---|---|---|
project_id | path | yes | string | — |
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | ProjectProjection | Successful Response |
| 401 | ErrorDetail | Authentication failed. |
| 404 | ErrorDetail | The resource was not found. |
| 422 | HTTPValidationError | Validation Error |
GET /api/projects/{project_id}/artifacts/{artifact_id}
Artifact Content
Authentication: Required by the named OpenAPI security scheme.
Parameters
| Name | Location | Required | Type | Constraints |
|---|---|---|---|---|
project_id | path | yes | string | — |
artifact_id | path | yes | string | — |
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | string | Verified immutable artifact bytes. |
| 401 | ErrorDetail | Authentication failed. |
| 404 | ErrorDetail | The resource was not found. |
| 422 | HTTPValidationError | Validation Error |
| 503 | ErrorDetail | Canonical bytes are unavailable. |
GET /api/projects/{project_id}/events
Project Events
Authentication: Required by the named OpenAPI security scheme.
Parameters
| Name | Location | Required | Type | Constraints |
|---|---|---|---|---|
project_id | path | yes | string | — |
after | query | no | string | null | — |
follow | query | no | boolean | — |
Last-Event-ID | header | no | string | null | — |
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | string | SSE frames whose data field is one serialized DomainEvent object. |
| 400 | ErrorDetail | The event cursor is invalid. |
| 401 | ErrorDetail | Authentication failed. |
| 422 | HTTPValidationError | Validation Error |
GET /api/projects/{project_id}/evidence/{evidence_ref_id}
Evidence Projection
Authentication: Required by the named OpenAPI security scheme.
Parameters
| Name | Location | Required | Type | Constraints |
|---|---|---|---|---|
project_id | path | yes | string | — |
evidence_ref_id | path | yes | string | — |
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | EvidenceProjection | Successful Response |
| 401 | ErrorDetail | Authentication failed. |
| 404 | ErrorDetail | The resource was not found. |
| 422 | HTTPValidationError | Validation Error |
| 503 | ErrorDetail | Canonical bytes are unavailable. |
POST /api/projects/{project_id}/runs
Research Run
Authentication: Required by the named OpenAPI security scheme.
Parameters
| Name | Location | Required | Type | Constraints |
|---|---|---|---|---|
project_id | path | yes | string | — |
Request body: required; CreateResearchRunCommand
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | CommandAccepted | CommandRejected | Successful Response |
| 401 | ErrorDetail | Authentication failed. |
| 422 | HTTPValidationError | Validation Error |
GET /api/projects/{project_id}/runs/{run_id}/story
Research Story
Authentication: Required by the named OpenAPI security scheme.
Parameters
| Name | Location | Required | Type | Constraints |
|---|---|---|---|---|
project_id | path | yes | string | — |
run_id | path | yes | string | — |
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | ResearchStory | Successful Response |
| 401 | ErrorDetail | Authentication failed. |
| 404 | ErrorDetail | The resource was not found. |
| 422 | HTTPValidationError | Validation Error |
PUT /api/projects/{project_id}/settings
Project Settings
Authentication: Required by the named OpenAPI security scheme.
Parameters
| Name | Location | Required | Type | Constraints |
|---|---|---|---|---|
project_id | path | yes | string | — |
Request body: required; UpdateProjectSettingsCommand
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | CommandAccepted | CommandRejected | Successful Response |
| 401 | ErrorDetail | Authentication failed. |
| 422 | HTTPValidationError | Validation Error |
GET /health/live
Live Health
Authentication: No bearer credential is declared for this endpoint.
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | HealthStatus | Successful Response |
GET /health/ready
Ready Health
Authentication: No bearer credential is declared for this endpoint.
Responses
| Status | Contract | Description |
|---|---|---|
| 200 | HealthStatus | Successful Response |
Schemas
ArtifactId
Type: string
Constraints: pattern ^art_[0-9a-f]{32}$
ArtifactManifest
| Field | Required | Type | Constraints/default |
|---|---|---|---|
artifact_id | yes | ArtifactId | pattern ^art_[0-9a-f]{32}$ |
created_at | yes | string | — |
digest | yes | string | pattern ^sha256:[0-9a-f]{64}$ |
media_type | yes | string | minimum length 1; maximum length 255 |
producing_attempt_id | yes | AttemptId | pattern ^att_[0-9a-f]{32}$ |
project_id | yes | ProjectId | pattern ^prj_[0-9a-f]{32}$ |
size_bytes | yes | integer | minimum 0.0 |
storage_key | yes | string | minimum length 1; maximum length 1024 |
workspace_id | yes | WorkspaceId | pattern ^wsp_[0-9a-f]{32}$ |
AttemptId
Type: string
Constraints: pattern ^att_[0-9a-f]{32}$
BlockId
Type: string
Constraints: pattern ^blk_[0-9a-f]{32}$
BlockRevisionId
Type: string
Constraints: pattern ^rev_[0-9a-f]{32}$
ClaimId
Type: string
Constraints: pattern ^clm_[0-9a-f]{32}$
ClaimRevisionId
Type: string
Constraints: pattern ^crv_[0-9a-f]{32}$
CommandAccepted
| Field | Required | Type | Constraints/default |
|---|---|---|---|
aggregate_id | yes | string | — |
aggregate_version | yes | integer | minimum 1.0 |
command_id | yes | CommandId | pattern ^cmd_[0-9a-f]{32}$ |
first_event_cursor | yes | Cursor | pattern ^c1_[A-Za-z0-9_-]{11}$ |
status | no | accepted | fixed value accepted; default "accepted" |
CommandId
Type: string
Constraints: pattern ^cmd_[0-9a-f]{32}$
CommandRejected
| Field | Required | Type | Constraints/default |
|---|---|---|---|
code | yes | string | pattern ^[a-z][a-z0-9_.-]+$ |
command_id | yes | CommandId | pattern ^cmd_[0-9a-f]{32}$ |
message | yes | string | minimum length 1; maximum length 500 |
observed_version | no | integer | null | integer: minimum 1.0 |
retry_after_ms | no | integer | null | integer: minimum 0.0 |
retryable | no | boolean | default false |
status | no | rejected | fixed value rejected; default "rejected" |
CreateResearchRunCommand
| Field | Required | Type | Constraints/default |
|---|---|---|---|
command_id | yes | CommandId | pattern ^cmd_[0-9a-f]{32}$ |
idempotency_key | yes | string | minimum length 8; maximum length 128 |
payload | yes | CreateResearchRunPayload | — |
CreateResearchRunPayload
| Field | Required | Type | Constraints/default |
|---|---|---|---|
objective | yes | string | minimum length 12; maximum length 4000 |
Cursor
Type: string
Constraints: pattern ^c1_[A-Za-z0-9_-]{11}$
DocumentId
Type: string
Constraints: pattern ^doc_[0-9a-f]{32}$
DomainEvent
| Field | Required | Type | Constraints/default |
|---|---|---|---|
actor | yes | EventActor | — |
aggregate_id | yes | string | — |
aggregate_type | yes | string | — |
aggregate_version | yes | integer | minimum 1.0 |
causation_id | yes | string | — |
correlation_id | yes | string | — |
cursor | yes | Cursor | pattern ^c1_[A-Za-z0-9_-]{11}$ |
event_id | yes | EventId | pattern ^eve_[0-9a-f]{32}$ |
event_type | yes | string | pattern ^[a-z][a-z0-9_.-]+$ |
occurred_at | yes | string | — |
payload | yes | object | — |
project_id | yes | ProjectId | pattern ^prj_[0-9a-f]{32}$ |
schema_version | no | 1 | fixed value 1; default 1 |
trace_id | yes | string | — |
workspace_id | yes | WorkspaceId | pattern ^wsp_[0-9a-f]{32}$ |
ErrorDetail
| Field | Required | Type | Constraints/default |
|---|---|---|---|
code | yes | string | pattern ^[a-z][a-z0-9_.-]+$ |
message | yes | string | minimum length 1; maximum length 500 |
retry_after_ms | no | integer | null | integer: minimum 0.0 |
retryable | no | boolean | default false |
EventActor
| Field | Required | Type | Constraints/default |
|---|---|---|---|
id | yes | string | — |
type | yes | human | system | attempt | values human, system, attempt |
EventId
Type: string
Constraints: pattern ^eve_[0-9a-f]{32}$
EvidenceProjection
| Field | Required | Type | Constraints/default |
|---|---|---|---|
artifact | yes | ArtifactManifest | — |
content_url | yes | string | — |
evidence_ref_id | yes | EvidenceRefId | pattern ^evr_[0-9a-f]{32}$ |
locator | yes | object | — |
target_kind | yes | artifact | fixed value artifact |
EvidenceRefId
Type: string
Constraints: pattern ^evr_[0-9a-f]{32}$
ExecutionId
Type: string
Constraints: pattern ^exe_[0-9a-f]{32}$
ExecutionOutputId
Type: string
Constraints: pattern ^out_[0-9a-f]{32}$
HTTPValidationError
| Field | Required | Type | Constraints/default |
|---|---|---|---|
detail | no | array of ValidationError | — |
HealthStatus
| Field | Required | Type | Constraints/default |
|---|---|---|---|
status | no | ok | fixed value ok; default "ok" |
JsonValue
Type: object Constraints: —
PlanVersionId
Type: string
Constraints: pattern ^pln_[0-9a-f]{32}$
ProjectId
Type: string
Constraints: pattern ^prj_[0-9a-f]{32}$
ProjectProjection
| Field | Required | Type | Constraints/default |
|---|---|---|---|
name | yes | string | — |
project_id | yes | ProjectId | pattern ^prj_[0-9a-f]{32}$ |
settings | yes | ProjectSettings | — |
version | yes | integer | minimum 1.0 |
workspace_id | yes | WorkspaceId | pattern ^wsp_[0-9a-f]{32}$ |
ProjectSettings
| Field | Required | Type | Constraints/default |
|---|---|---|---|
inspector_collapsed | no | boolean | default false |
inspector_width | no | integer | minimum 320.0; maximum 480.0; default 360 |
navigator_collapsed | no | boolean | default false |
navigator_width | no | integer | minimum 216.0; maximum 384.0; default 248 |
theme | no | system | light | dark | values system, light, dark; default "system" |
ResearchStory
| Field | Required | Type | Constraints/default |
|---|---|---|---|
artifact | yes | StoryArtifact | — |
attempt | yes | StoryAttempt | — |
claim | yes | StoryClaim | — |
latest_cursor | yes | Cursor | pattern ^c1_[A-Za-z0-9_-]{11}$ |
notebook | yes | StoryBlock | — |
objective | yes | string | — |
plan_version_id | yes | PlanVersionId | pattern ^pln_[0-9a-f]{32}$ |
project_id | yes | ProjectId | pattern ^prj_[0-9a-f]{32}$ |
run_id | yes | RunId | pattern ^run_[0-9a-f]{32}$ |
task | yes | StoryTask | — |
workspace_id | yes | WorkspaceId | pattern ^wsp_[0-9a-f]{32}$ |
writeup | yes | StoryWriteup | — |
RunId
Type: string
Constraints: pattern ^run_[0-9a-f]{32}$
StoryArtifact
| Field | Required | Type | Constraints/default |
|---|---|---|---|
content_url | yes | string | — |
manifest | yes | ArtifactManifest | — |
StoryAttempt
| Field | Required | Type | Constraints/default |
|---|---|---|---|
attempt_id | yes | AttemptId | pattern ^att_[0-9a-f]{32}$ |
state | yes | succeeded | fixed value succeeded |
summary | yes | string | — |
StoryBlock
| Field | Required | Type | Constraints/default |
|---|---|---|---|
block_id | yes | BlockId | pattern ^blk_[0-9a-f]{32}$ |
block_revision_id | yes | BlockRevisionId | pattern ^rev_[0-9a-f]{32}$ |
document_id | yes | DocumentId | pattern ^doc_[0-9a-f]{32}$ |
execution_id | yes | ExecutionId | pattern ^exe_[0-9a-f]{32}$ |
execution_output_id | yes | ExecutionOutputId | pattern ^out_[0-9a-f]{32}$ |
output_text | yes | string | — |
source | yes | string | — |
StoryClaim
| Field | Required | Type | Constraints/default |
|---|---|---|---|
claim_id | yes | ClaimId | pattern ^clm_[0-9a-f]{32}$ |
claim_revision_id | yes | ClaimRevisionId | pattern ^crv_[0-9a-f]{32}$ |
currentness | yes | current | fixed value current |
evidence_ref_id | yes | EvidenceRefId | pattern ^evr_[0-9a-f]{32}$ |
evidence_url | yes | string | — |
review_status | yes | accepted | fixed value accepted |
text | yes | string | — |
validity | yes | valid-for-pinned-inputs | fixed value valid-for-pinned-inputs |
StoryTask
| Field | Required | Type | Constraints/default |
|---|---|---|---|
objective | yes | string | — |
phase | yes | completed | fixed value completed |
task_id | yes | TaskId | pattern ^tsk_[0-9a-f]{32}$ |
title | yes | string | — |
StoryWriteup
| Field | Required | Type | Constraints/default |
|---|---|---|---|
block_revision_id | yes | BlockRevisionId | pattern ^rev_[0-9a-f]{32}$ |
document_id | yes | DocumentId | pattern ^doc_[0-9a-f]{32}$ |
markdown | yes | string | — |
TaskId
Type: string
Constraints: pattern ^tsk_[0-9a-f]{32}$
UpdateProjectSettingsCommand
| Field | Required | Type | Constraints/default |
|---|---|---|---|
command_id | yes | CommandId | pattern ^cmd_[0-9a-f]{32}$ |
idempotency_key | yes | string | minimum length 8; maximum length 128 |
payload | yes | UpdateProjectSettingsPayload | — |
UpdateProjectSettingsPayload
| Field | Required | Type | Constraints/default |
|---|---|---|---|
expected_version | yes | integer | minimum 1.0 |
settings | yes | ProjectSettings | — |
ValidationError
| Field | Required | Type | Constraints/default |
|---|---|---|---|
ctx | no | object | — |
input | no | object | — |
loc | yes | array of string | integer | — |
msg | yes | string | — |
type | yes | string | — |
WorkspaceId
Type: string
Constraints: pattern ^wsp_[0-9a-f]{32}$