{"openapi":"3.1.0","info":{"title":"ReasonBlocks API","description":"ReasonBlocks REST API. Public routes are versioned under `/v1/`.\n\n**Auth:** every route requires `Authorization: Bearer <api_key>`. Issue keys from the dashboard (per-org), or set `REASONBLOCKS_KEYS` for static dev keys. See `docs/rest-api-setup.md` and `docs/custom-harness-quickstart.md` in the repo for end-to-end setup.\n\n**Back-compat:** unversioned aliases (e.g. `POST /traces/retrieve`) remain mounted for already-deployed SDK clients but are intentionally hidden from this schema. New integrations should target `/v1/...`.","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/traces/retrieve":{"post":{"tags":["Patterns & Traces"],"summary":"Retrieve Traces","description":"Retrieve raw pattern payloads for a tier, optionally filtered.","operationId":"retrieve_traces_v1_traces_retrieve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceRetrieveRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceRetrieveResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/traces":{"post":{"tags":["Patterns & Traces"],"summary":"Store Trace","description":"Store a completed trace for future distillation.","operationId":"store_trace_v1_traces_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceStoreRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/library/patterns":{"get":{"tags":["Pattern Library"],"summary":"List Patterns","description":"List patterns scoped to the caller's tenant.\n\nPer-customer keys: only their own E1 patterns. E2/E3 are commons /\nuniversal so they're returned to anyone (no per-tenant data).\nStatic keys: optional ``?org_id=`` filter; otherwise all patterns.\nJWT (dashboard): must pass ``?org_id=`` and the org must be in\n``allowed_orgs``.","operationId":"list_patterns_v1_library_patterns_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}},{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Org Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Patterns V1 Library Patterns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/library/patterns/{tier}/{pattern_id}":{"delete":{"tags":["Pattern Library"],"summary":"Delete Pattern","operationId":"delete_pattern_v1_library_patterns__tier___pattern_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tier","in":"path","required":true,"schema":{"type":"string","title":"Tier"}},{"name":"pattern_id","in":"path","required":true,"schema":{"type":"string","title":"Pattern Id"}},{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Org Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Pattern V1 Library Patterns  Tier   Pattern Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Pattern Library"],"summary":"Patch Pattern","operationId":"patch_pattern_v1_library_patterns__tier___pattern_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tier","in":"path","required":true,"schema":{"type":"string","title":"Tier"}},{"name":"pattern_id","in":"path","required":true,"schema":{"type":"string","title":"Pattern Id"}},{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Org Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatternPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Pattern V1 Library Patterns  Tier   Pattern Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/score":{"post":{"tags":["Scoring"],"summary":"Score Step","description":"Server-side difficulty scoring.","operationId":"score_step_v1_score_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitors/evaluate":{"post":{"tags":["Monitors"],"summary":"Evaluate Monitors","operationId":"evaluate_monitors_v1_monitors_evaluate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorEvaluateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorEvaluateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/findings/{codebase_id}":{"post":{"tags":["Codebase Findings"],"summary":"Store Finding","operationId":"store_finding_v1_findings__codebase_id__post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"codebase_id","in":"path","required":true,"schema":{"type":"string","title":"Codebase Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingStoreRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingStoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Codebase Findings"],"summary":"List Findings","operationId":"list_findings_v1_findings__codebase_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"codebase_id","in":"path","required":true,"schema":{"type":"string","title":"Codebase Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Codebase Findings"],"summary":"Clear Findings","operationId":"clear_findings_v1_findings__codebase_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"codebase_id","in":"path","required":true,"schema":{"type":"string","title":"Codebase Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Clear Findings V1 Findings  Codebase Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/findings/{codebase_id}/search":{"post":{"tags":["Codebase Findings"],"summary":"Search Findings","operationId":"search_findings_v1_findings__codebase_id__search_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"codebase_id","in":"path","required":true,"schema":{"type":"string","title":"Codebase Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingSearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingSearchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/findings/{codebase_id}/{finding_id}":{"delete":{"tags":["Codebase Findings"],"summary":"Delete Finding","description":"Delete a single finding by id.","operationId":"delete_finding_v1_findings__codebase_id___finding_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"codebase_id","in":"path","required":true,"schema":{"type":"string","title":"Codebase Id"}},{"name":"finding_id","in":"path","required":true,"schema":{"type":"string","title":"Finding Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Finding V1 Findings  Codebase Id   Finding Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Codebase Findings"],"summary":"Patch Finding","description":"Update a single finding's content/file_path/finding_type. If content\nchanges, the embedding is recomputed so search stays consistent.","operationId":"patch_finding_v1_findings__codebase_id___finding_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"codebase_id","in":"path","required":true,"schema":{"type":"string","title":"Codebase Id"}},{"name":"finding_id","in":"path","required":true,"schema":{"type":"string","title":"Finding Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Finding V1 Findings  Codebase Id   Finding Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/findings/{codebase_id}/invalidate":{"post":{"tags":["Codebase Findings"],"summary":"Invalidate Findings","operationId":"invalidate_findings_v1_findings__codebase_id__invalidate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"codebase_id","in":"path","required":true,"schema":{"type":"string","title":"Codebase Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingInvalidateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FindingInvalidateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/findings":{"get":{"tags":["Codebase Findings"],"summary":"List Codebases","description":"List every codebase the principal can see.\n\nPer-customer keys see only codebases that have at least one logged\nrun under their (org_id, project_id). Static keys see everything\nwhen no scope is supplied; otherwise the same scope filter applies.","operationId":"list_codebases_v1_findings_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodebaseListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/runs":{"post":{"tags":["Monitor Telemetry","monitor"],"summary":"Start Run","operationId":"start_run_v1_monitor_runs_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorRunStart"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Start Run V1 Monitor Runs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Monitor Telemetry","monitor"],"summary":"List Runs","operationId":"list_runs_v1_monitor_runs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":1,"default":200,"title":"Limit"}},{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Runs V1 Monitor Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/runs/{run_id}/finish":{"post":{"tags":["Monitor Telemetry","monitor"],"summary":"Finish Run","operationId":"finish_run_v1_monitor_runs__run_id__finish_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorRunFinish"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Finish Run V1 Monitor Runs  Run Id  Finish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/runs/{run_id}/steps":{"post":{"tags":["Monitor Telemetry","monitor"],"summary":"Log Step","operationId":"log_step_v1_monitor_runs__run_id__steps_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorStepLog"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorStepLogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/runs/{run_id}":{"get":{"tags":["Monitor Telemetry","monitor"],"summary":"Run Detail","operationId":"run_detail_v1_monitor_runs__run_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Run Detail V1 Monitor Runs  Run Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/health-summary":{"get":{"tags":["Monitor Telemetry","monitor"],"summary":"Monitor Health Summary","operationId":"monitor_health_summary_v1_monitor_health_summary_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Monitor Health Summary V1 Monitor Health Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/profiles":{"get":{"tags":["Monitor Telemetry","monitor"],"summary":"List Profiles","description":"Every monitor profile visible at this scope. Built-ins always\nappear; customs are merged in from Postgres for the org (and the\nproject-scoped subset, when ``project_id`` is supplied). Per-customer\nkeys see only their own org's customs regardless of query.","operationId":"list_profiles_v1_monitor_profiles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Profiles V1 Monitor Profiles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Monitor Telemetry","monitor"],"summary":"Create Profile","description":"Create a custom profile. Profile IDs that collide with a built-in\nare rejected. The same profile_id can exist once org-wide AND once\nper project; the resolver prefers project-scoped. The org_id /\nproject_id authority comes from the API key when it's per-customer\n-- the body's values are ignored to prevent cross-tenant writes.","operationId":"create_profile_v1_monitor_profiles_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Profile V1 Monitor Profiles Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/profiles/{profile_id}":{"get":{"tags":["Monitor Telemetry","monitor"],"summary":"Get Profile","operationId":"get_profile_v1_monitor_profiles__profile_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","title":"Profile Id"}},{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Profile V1 Monitor Profiles  Profile Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Monitor Telemetry","monitor"],"summary":"Update Profile","description":"Update an existing custom profile. Built-ins cannot be patched.\nPer-customer keys can only patch profiles in their own org.","operationId":"update_profile_v1_monitor_profiles__profile_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","title":"Profile Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Profile V1 Monitor Profiles  Profile Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Monitor Telemetry","monitor"],"summary":"Remove Profile","description":"Delete a custom profile. Built-ins cannot be deleted. project_id\nselects between the org-wide ('') and project-scoped row.\n\nPer-customer keys can only delete profiles in their own org.\nStatic principals MUST pass an explicit ``org_id`` -- otherwise we\nrefuse rather than fall through to \"default\", which historically\nlet admin keys destroy any tenant's profile by URL hacking.\nJWT principals must have ``org_id`` in their allowed_orgs.","operationId":"remove_profile_v1_monitor_profiles__profile_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","title":"Profile Id"}},{"name":"org_id","in":"query","required":false,"schema":{"type":"string","default":"default","title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Project Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Remove Profile V1 Monitor Profiles  Profile Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/scorers":{"get":{"tags":["Monitor Telemetry","monitor"],"summary":"List Scorers","description":"The closed scorer registry the upstream pipeline understands.\nCustom profiles can only reference these names. Each entry carries\nthe default weight under the ``coding`` profile so the editor can\npre-fill sensible numbers when a customer first picks the scorer.","operationId":"list_scorers_v1_monitor_scorers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Scorers V1 Monitor Scorers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/monitor/stream":{"get":{"tags":["Monitor Telemetry","monitor"],"summary":"Monitor Stream","description":"SSE stream of ``monitor_steps`` writes. Filter via ``org_id`` /\n``project_id`` to match the dashboard's current scope.\n\nEvent types:\n  * ``ready`` -- empty payload, sent on connect\n  * ``step``  -- ``{run_id, step_index, org_id, project_id, total_score, fired}``\n                 payload (matches the NOTIFY trigger envelope).","operationId":"monitor_stream_v1_monitor_stream_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Org Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/meter":{"get":{"tags":["Billing"],"summary":"Get Meter","description":"Return ``{plan, used, cap, over_cap, org_id}`` for an org.\n\nAuthorization:\n  * Static (admin) keys may query any org.\n  * Per-customer keys may only query their own org -- the principal's\n    ``org_id`` is the source of truth; a mismatch with the query\n    param is rejected.\n  * JWT (dashboard) callers must have ``org_id`` in their\n    ``allowed_orgs``.","operationId":"get_meter_v1_billing_meter_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"org_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"title":"Org Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":0,"description":"If >0, include per-day timeseries for the trailing N days.","default":0,"title":"Days"},"description":"If >0, include per-day timeseries for the trailing N days."},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (EventSource fallback)","title":"Token"},"description":"API key (EventSource fallback)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Meter V1 Billing Meter Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CodebaseListResponse":{"properties":{"codebases":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Codebases"}},"type":"object","title":"CodebaseListResponse"},"ETraceItem":{"properties":{"tier":{"type":"string","title":"Tier"},"level":{"type":"string","title":"Level","default":""},"pattern_id":{"type":"string","maxLength":256,"title":"Pattern Id","default":""},"similarity":{"type":"number","title":"Similarity","default":0.0},"failure_type":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Failure Type"},"fields":{"additionalProperties":true,"type":"object","title":"Fields"},"model_family":{"type":"string","maxLength":128,"title":"Model Family","default":""},"insight":{"type":"string","maxLength":64000,"title":"Insight","default":""},"source_trace_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Source Trace Id"}},"type":"object","required":["tier"],"title":"ETraceItem","description":"One retrieved pattern.\n\nThe SDK treats ``fields`` as the source of truth and feeds it to\n``reasonblocks.format_routing.render_pattern(tier, model, fields)``.\nThe legacy ``insight`` string is preserved only when a caller sends one\nin from somewhere else — this server never populates it."},"FindingInvalidateRequest":{"properties":{"file_paths":{"items":{"type":"string"},"type":"array","maxItems":1024,"title":"File Paths"}},"type":"object","title":"FindingInvalidateRequest","description":"Invalidate cached findings whose file_path matches one of the listed paths."},"FindingInvalidateResponse":{"properties":{"invalidated":{"type":"integer","title":"Invalidated","default":0}},"type":"object","title":"FindingInvalidateResponse"},"FindingListResponse":{"properties":{"findings":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Findings"},"count":{"type":"integer","title":"Count","default":0}},"type":"object","title":"FindingListResponse"},"FindingPatch":{"properties":{"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"file_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Path"},"finding_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finding Type"}},"type":"object","title":"FindingPatch"},"FindingSearchRequest":{"properties":{"query":{"type":"string","maxLength":2000,"minLength":1,"title":"Query"},"top_k":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Top K","default":5},"score_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Score Threshold","default":0.5}},"type":"object","required":["query"],"title":"FindingSearchRequest","description":"Body for POST /findings/{codebase_id}/search -- semantic recall query."},"FindingSearchResponse":{"properties":{"results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Results"}},"type":"object","title":"FindingSearchResponse"},"FindingStoreRequest":{"properties":{"content":{"type":"string","maxLength":8000,"minLength":1,"title":"Content"},"file_path":{"type":"string","maxLength":512,"title":"File Path","default":""},"finding_type":{"type":"string","maxLength":64,"title":"Finding Type","default":"note"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["content"],"title":"FindingStoreRequest","description":"Body for POST /findings/{codebase_id} -- one finding to persist."},"FindingStoreResponse":{"properties":{"finding_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finding Id"},"stored":{"type":"boolean","title":"Stored","default":true}},"type":"object","title":"FindingStoreResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InjectedPattern":{"properties":{"pattern_id":{"type":"string","maxLength":256,"title":"Pattern Id"},"tier":{"type":"string","maxLength":32,"title":"Tier"},"similarity":{"type":"number","title":"Similarity","default":0.0}},"type":"object","required":["pattern_id","tier"],"title":"InjectedPattern","description":"One pattern the SDK injected during a call."},"MonitorEvaluateRequest":{"properties":{"model":{"type":"string","maxLength":128,"title":"Model","default":""},"steps":{"items":{"$ref":"#/components/schemas/MonitorStep"},"type":"array","maxItems":2000,"title":"Steps"},"task_profile":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Task Profile"},"weights":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Weights"},"org_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Org Id"},"project_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Project Id"}},"type":"object","title":"MonitorEvaluateRequest","description":"Request body for /monitors/evaluate.\n\nWeight resolution order (lowest precedence to highest):\n\n1. Server defaults (``MONITOR_WEIGHTS`` in scoring/monitors.py).\n2. Profile preset selected by ``task_profile`` (built-in: ``coding``,\n   ``pr_review``; customer-defined profiles are hydrated into the\n   same registry from the ``monitor_profiles`` table at startup).\n3. Explicit ``weights`` dict on this request — partial overrides are\n   fine; unspecified monitor names fall through to the profile/default."},"MonitorEvaluateResponse":{"properties":{"inject":{"type":"boolean","title":"Inject"},"intervention_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intervention Text"},"failure_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Type"},"injection_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Injection Path"},"intervention_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intervention Source"},"fired":{"items":{"type":"string"},"type":"array","title":"Fired"},"pattern_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pattern Id"},"scores":{"additionalProperties":{"type":"number"},"type":"object","title":"Scores"},"composite":{"type":"number","title":"Composite","default":0.0}},"type":"object","required":["inject"],"title":"MonitorEvaluateResponse","description":"Response body. ``intervention_text`` is the only field that drives\nuser-visible behaviour; everything else is audit metadata for the\nSDK's per-call records."},"MonitorRunFinish":{"properties":{"outcome":{"type":"string","maxLength":64,"title":"Outcome","default":""}},"type":"object","title":"MonitorRunFinish"},"MonitorRunStart":{"properties":{"run_id":{"type":"string","maxLength":256,"pattern":"^[A-Za-z0-9_\\-./:@]+$","title":"Run Id"},"agent_name":{"type":"string","maxLength":256,"title":"Agent Name","default":""},"task":{"type":"string","maxLength":4000,"title":"Task","default":""},"model":{"type":"string","maxLength":128,"title":"Model","default":""},"framework":{"type":"string","maxLength":64,"title":"Framework","default":""},"codebase_id":{"type":"string","maxLength":256,"title":"Codebase Id","default":""},"org_id":{"type":"string","maxLength":256,"title":"Org Id","default":"default"},"project_id":{"type":"string","maxLength":256,"title":"Project Id","default":"default"},"task_profile":{"type":"string","maxLength":64,"title":"Task Profile","default":"coding"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["run_id"],"title":"MonitorRunStart"},"MonitorStep":{"properties":{"thought":{"type":"string","maxLength":64000,"title":"Thought","default":""},"action":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Action"},"action_input":{"title":"Action Input"},"observation":{"anyOf":[{"type":"string","maxLength":64000},{"type":"null"}],"title":"Observation"},"observation_is_error":{"type":"boolean","title":"Observation Is Error","default":false}},"type":"object","title":"MonitorStep","description":"One step in the SDK-side trace, flattened for over-the-wire transit.\n\nStrict shape: untrusted clients can't inject arbitrary keys. If a new\nfield is needed, add it to this model rather than relying on\n``extra=\"allow\"``."},"MonitorStepLog":{"properties":{"step_index":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Step Index"},"action":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Action"},"action_input":{"anyOf":[{"type":"string","maxLength":64000},{"type":"null"}],"title":"Action Input"},"thought":{"anyOf":[{"type":"string","maxLength":64000},{"type":"null"}],"title":"Thought"},"observation":{"anyOf":[{"type":"string","maxLength":64000},{"type":"null"}],"title":"Observation"},"is_error":{"type":"boolean","title":"Is Error","default":false},"tokens":{"type":"integer","minimum":0.0,"title":"Tokens","default":0},"injections":{"items":{"type":"string"},"type":"array","maxItems":64,"title":"Injections"},"injection_sources":{"items":{"type":"string"},"type":"array","maxItems":64,"title":"Injection Sources"},"intervention_texts":{"items":{"type":"string"},"type":"array","maxItems":64,"title":"Intervention Texts"},"monitors_fired":{"items":{"type":"string"},"type":"array","maxItems":64,"title":"Monitors Fired"},"failure_type":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Failure Type"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["step_index"],"title":"MonitorStepLog"},"MonitorStepLogResponse":{"properties":{"scores":{"additionalProperties":{"type":"number"},"type":"object","title":"Scores"},"total_score":{"type":"number","title":"Total Score","default":0.0},"fired":{"items":{"type":"string"},"type":"array","title":"Fired"}},"type":"object","title":"MonitorStepLogResponse","description":"The score bundle computed + persisted for the step just logged."},"PatternPatch":{"properties":{"fields":{"additionalProperties":true,"type":"object","title":"Fields"}},"type":"object","title":"PatternPatch","description":"Free-form payload patch. Whitelisted in the service to prevent\noverwriting structural keys (``pattern_id``, ``tier``, ``customer_id``)."},"ScoreRequest":{"properties":{"text":{"type":"string","maxLength":64000,"title":"Text","default":""},"context":{"type":"string","maxLength":64000,"title":"Context","default":""}},"type":"object","title":"ScoreRequest"},"ScoreResponse":{"properties":{"difficulty":{"type":"number","title":"Difficulty"}},"type":"object","required":["difficulty"],"title":"ScoreResponse"},"StepPayload":{"properties":{"step_index":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Step Index"},"thought":{"type":"string","maxLength":64000,"title":"Thought","default":""},"action":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Action"},"action_input":{"anyOf":[{"type":"string","maxLength":64000},{"type":"null"}],"title":"Action Input"},"observation":{"anyOf":[{"type":"string","maxLength":64000},{"type":"null"}],"title":"Observation"},"difficulty":{"type":"number","title":"Difficulty","default":0.0},"state":{"type":"string","maxLength":32,"title":"State","default":"INIT"},"tokens_used":{"type":"integer","minimum":0.0,"title":"Tokens Used","default":0}},"type":"object","required":["step_index"],"title":"StepPayload","description":"Legacy per-step shape posted by ``store_trace`` (pre-v2)."},"TraceCallRecord":{"properties":{"call_index":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Call Index"},"messages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":512,"title":"Messages"},"response":{"additionalProperties":true,"type":"object","title":"Response"},"tool_calls":{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":128,"title":"Tool Calls"},"monitor_scores":{"additionalProperties":{"type":"number"},"type":"object","title":"Monitor Scores"},"composite_score":{"type":"number","title":"Composite Score","default":0.0},"monitors_fired":{"items":{"type":"string"},"type":"array","maxItems":64,"title":"Monitors Fired"},"injection_fired":{"type":"boolean","title":"Injection Fired","default":false},"injection_path":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Injection Path"},"injected_patterns":{"items":{"$ref":"#/components/schemas/InjectedPattern"},"type":"array","maxItems":32,"title":"Injected Patterns"},"fallback_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Fallback Id"},"primary_failure_type":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Primary Failure Type"},"tokens":{"type":"integer","minimum":0.0,"title":"Tokens","default":0}},"type":"object","required":["call_index"],"title":"TraceCallRecord","description":"One LLM call inside a session, as captured by the SDK middleware.\n\n``messages`` is a small JSON-friendly projection of the LangChain\nmessages sent to the model, not the full wire shape. ``tool_calls``\ncaptures the tool-call/tool-result pairs for this call pulled from\nLangChain intermediate_steps."},"TraceManifest":{"properties":{"trace_id":{"type":"string","maxLength":256,"title":"Trace Id"},"customer_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Customer Id"},"model":{"type":"string","maxLength":128,"title":"Model","default":""},"total_calls":{"type":"integer","maximum":10000.0,"minimum":0.0,"title":"Total Calls","default":0},"outcome_status":{"type":"string","maxLength":64,"title":"Outcome Status","default":"success"},"total_tokens":{"type":"integer","minimum":0.0,"title":"Total Tokens","default":0},"monitors_fired_summary":{"items":{"type":"string"},"type":"array","maxItems":128,"title":"Monitors Fired Summary"},"task_context":{"type":"string","maxLength":64000,"title":"Task Context","default":""},"started_at":{"type":"number","title":"Started At","default":0.0},"ended_at":{"type":"number","title":"Ended At","default":0.0}},"type":"object","required":["trace_id"],"title":"TraceManifest","description":"Session-level manifest the SDK sends with the per-call records."},"TraceRetrieveRequest":{"properties":{"context":{"type":"string","maxLength":64000,"minLength":0,"title":"Context"},"level":{"type":"string","pattern":"^(e[123])?$","title":"Level","default":""},"tier":{"type":"string","pattern":"^(e[123])?$","title":"Tier","default":""},"top_k":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Top K","default":5},"model":{"type":"string","maxLength":128,"title":"Model","default":""},"customer_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Customer Id"},"failure_type":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Failure Type"}},"type":"object","required":["context"],"title":"TraceRetrieveRequest","description":"Retrieval query.\n\n``level`` (legacy) and ``tier`` are accepted interchangeably — the SDK\nand the server both normalize to lowercase ``e1``/``e2``/``e3``. ``tier``\nis the preferred field for new callers."},"TraceRetrieveResponse":{"properties":{"traces":{"items":{"$ref":"#/components/schemas/ETraceItem"},"type":"array","title":"Traces"}},"type":"object","required":["traces"],"title":"TraceRetrieveResponse"},"TraceStoreRequest":{"properties":{"trace_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Trace Id"},"steps":{"items":{"$ref":"#/components/schemas/StepPayload"},"type":"array","maxItems":2000,"title":"Steps"},"outcome":{"type":"string","maxLength":64,"title":"Outcome","default":""},"manifest":{"anyOf":[{"$ref":"#/components/schemas/TraceManifest"},{"type":"null"}]},"calls":{"items":{"$ref":"#/components/schemas/TraceCallRecord"},"type":"array","maxItems":2000,"title":"Calls"}},"type":"object","title":"TraceStoreRequest","description":"POST /traces body.\n\nTwo supported shapes:\n\n* Legacy: ``trace_id`` + ``steps`` + ``outcome``. Returns 200.\n* v2 (trace collection): ``manifest`` + ``calls``. Returns 202;\n  storage + distillation + contrastive extraction run in a background\n  task so the SDK POST is near-instant."},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}