{"openapi":"3.1.0","info":{"title":"AetherGrid AI","description":"A provider-agnostic gateway, orchestration and observability layer for AI\napplications.\n\n**Authentication.** Every endpoint except the health probes needs a project API\nkey, sent as `Authorization: Bearer ag_...` or `X-API-Key: ag_...`. A key\nresolves to exactly one project, so no request carries a project id.\n\n**Authorisation** is two independent checks: the key's scopes and the owning\nmember's role. Both must allow an action.\n\n**Costs** are reported by the provider where it reports them and estimated from\nthe model price table otherwise; `cost_is_estimated` says which. A cost that\ncould not be determined is `null` — never `0`.","version":"0.1.0"},"paths":{"/health":{"get":{"tags":["health"],"summary":"Liveness probe","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/ready":{"get":{"tags":["health"],"summary":"Readiness probe","operationId":"ready_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/v1/auth/login":{"post":{"tags":["authentication"],"summary":"Exchange email and password for a console session","operationId":"login_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/logout":{"post":{"tags":["authentication"],"summary":"Revoke the current console session","description":"Revoke the presented session.\n\nRequires a credential that still authenticates, so calling it twice with the\nsame token gives 204 then 401 — the second attempt is a revoked session\nbeing refused at the door, which is the correct answer to \"sign this out\"\nwhen it is already signed out. The console treats both as success.\n\nA caller authenticating with an API key is a no-op rather than an error:\nthere is no session to revoke, and failing would imply one was missed.","operationId":"logout_v1_auth_logout_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/me":{"get":{"tags":["authentication"],"summary":"The current identity","description":"Who this credential is, and what it may do.\n\nServes both credential types: the console calls it to validate a session on\nevery protected render, and an API-key caller can use it to discover the\nscopes it actually holds.","operationId":"me_v1_auth_me_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/signup":{"post":{"tags":["authentication"],"summary":"Create an account and its first workspace","description":"Email signup: one user, one organization they own, one project, a session.\n\nThe owner role is a membership row written here, on the server; nothing a\nclient sends can choose a role. The account starts unverified and receives\na verification link; it may use the console meanwhile, and the console\nshows the unverified state until the link is followed.","operationId":"signup_v1_auth_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/verify-email":{"post":{"tags":["authentication"],"summary":"Confirm an email address from its verification link","operationId":"verify_email_v1_auth_verify_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyEmailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionUser"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/resend-verification":{"post":{"tags":["authentication"],"summary":"Send a fresh verification link to the signed-in account","operationId":"resend_verification_v1_auth_resend_verification_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/oauth/providers":{"get":{"tags":["authentication"],"summary":"Which external sign-ins this deployment offers","operationId":"oauth_providers_v1_auth_oauth_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthProvidersOut"}}}}}}},"/v1/auth/oauth/{provider}/start":{"get":{"tags":["authentication"],"summary":"Begin an OAuth sign-in","operationId":"oauth_start_v1_auth_oauth__provider__start_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}}],"responses":{"302":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/oauth/{provider}/callback":{"get":{"tags":["authentication"],"summary":"Complete an OAuth sign-in","operationId":"oauth_callback_v1_auth_oauth__provider__callback_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}}],"responses":{"302":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/oauth/exchange":{"post":{"tags":["authentication"],"summary":"Redeem a one-time OAuth completion code for the session it issued","operationId":"oauth_exchange_v1_auth_oauth_exchange_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthExchangeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/completions":{"post":{"tags":["inference"],"summary":"Run a completion through the gateway","operationId":"create_completion_v1_chat_completions_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/stream":{"post":{"tags":["inference"],"summary":"Stream a completion as Server-Sent Events","description":"Stream tokens as they arrive.\n\nThe generator opens its **own** database session rather than taking the\nrequest-scoped one. FastAPI closes `yield` dependencies before the response\nbody is sent, so the injected session would already be closed by the time the\nfirst token was produced — and the telemetry rows the gateway writes during\nthe stream would be lost with it.","operationId":"stream_completion_v1_chat_stream_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionRequest"}}}},"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/route-preview":{"post":{"tags":["inference"],"summary":"Show which model the router would pick, without calling it","operationId":"preview_route_v1_chat_route_preview_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatCompletionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutePreviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/playground/compare":{"post":{"tags":["playground"],"summary":"Run one prompt against several models at once","operationId":"compare_v1_playground_compare_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComparisonRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComparisonResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/conversations":{"get":{"tags":["playground"],"summary":"List conversations","operationId":"list_conversations_v1_conversations_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"include_archived","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Archived"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ConversationOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["playground"],"summary":"Create a conversation","operationId":"create_conversation_v1_conversations_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/conversations/{conversation_id}":{"get":{"tags":["playground"],"summary":"Fetch a conversation with its messages","operationId":"get_conversation_v1_conversations__conversation_id__get","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["playground"],"summary":"Rename or archive","operationId":"update_conversation_v1_conversations__conversation_id__patch","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["playground"],"summary":"Delete a conversation","operationId":"delete_conversation_v1_conversations__conversation_id__delete","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/conversations/{conversation_id}/messages":{"post":{"tags":["playground"],"summary":"Append a message","operationId":"append_message_v1_conversations__conversation_id__messages_post","parameters":[{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","title":"Conversation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAppend"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationMessageOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/models":{"get":{"tags":["models"],"summary":"Search the model directory","operationId":"list_models_v1_models_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-text match on slug or name","title":"Q"},"description":"Free-text match on slug or name"},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"supports_tools","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Supports Tools"}},{"name":"supports_vision","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Supports Vision"}},{"name":"supports_streaming","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Supports Streaming"}},{"name":"min_context","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Context"}},{"name":"max_input_price","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"title":"Max Input Price"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ModelStatus"},{"type":"null"}],"title":"Status"}},{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enabled Only"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","pattern":"^(slug|price|context|latency|quality)$","default":"slug","title":"Sort"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ModelOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/models/{slug}":{"get":{"tags":["models"],"summary":"Model detail","operationId":"get_model_v1_models__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/providers":{"get":{"tags":["providers"],"summary":"List providers","operationId":"list_providers_v1_providers_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderOut"},"title":"Response List Providers V1 Providers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/providers/health":{"get":{"tags":["providers"],"summary":"Probe every configured provider","operationId":"provider_health_v1_providers_health_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderHealthOut"},"title":"Response Provider Health V1 Providers Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/routing/policies":{"get":{"tags":["routing"],"summary":"List routing policies","operationId":"list_policies_v1_routing_policies_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_RoutingPolicyOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["routing"],"summary":"Create a routing policy","operationId":"create_policy_v1_routing_policies_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutingPolicyWrite"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutingPolicyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/routing/policies/{policy_id}":{"get":{"tags":["routing"],"summary":"Fetch a policy","operationId":"get_policy_v1_routing_policies__policy_id__get","parameters":[{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","title":"Policy Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutingPolicyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["routing"],"summary":"Replace a policy","operationId":"update_policy_v1_routing_policies__policy_id__put","parameters":[{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","title":"Policy Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutingPolicyWrite"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutingPolicyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["routing"],"summary":"Delete a policy","operationId":"delete_policy_v1_routing_policies__policy_id__delete","parameters":[{"name":"policy_id","in":"path","required":true,"schema":{"type":"string","title":"Policy Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/knowledge":{"get":{"tags":["knowledge"],"summary":"List knowledge bases","operationId":"list_bases_v1_knowledge_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_KnowledgeBaseOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["knowledge"],"summary":"Create a knowledge base","operationId":"create_base_v1_knowledge_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/knowledge/{base_id}":{"get":{"tags":["knowledge"],"summary":"Fetch a knowledge base","operationId":"get_base_v1_knowledge__base_id__get","parameters":[{"name":"base_id","in":"path","required":true,"schema":{"type":"string","title":"Base Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeBaseOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["knowledge"],"summary":"Delete a knowledge base and its documents","operationId":"delete_base_v1_knowledge__base_id__delete","parameters":[{"name":"base_id","in":"path","required":true,"schema":{"type":"string","title":"Base Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/knowledge/{base_id}/documents":{"get":{"tags":["knowledge"],"summary":"List documents in a knowledge base","operationId":"list_documents_v1_knowledge__base_id__documents_get","parameters":[{"name":"base_id","in":"path","required":true,"schema":{"type":"string","title":"Base Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_DocumentOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["knowledge"],"summary":"Upload and ingest a document","operationId":"ingest_document_v1_knowledge__base_id__documents_post","parameters":[{"name":"base_id","in":"path","required":true,"schema":{"type":"string","title":"Base Id"}},{"name":"embed","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Embed"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_ingest_document_v1_knowledge__base_id__documents_post"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/knowledge/{base_id}/documents/{document_id}":{"delete":{"tags":["knowledge"],"summary":"Delete a document and its chunks","operationId":"delete_document_v1_knowledge__base_id__documents__document_id__delete","parameters":[{"name":"base_id","in":"path","required":true,"schema":{"type":"string","title":"Base Id"}},{"name":"document_id","in":"path","required":true,"schema":{"type":"string","title":"Document Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/knowledge/{base_id}/query":{"post":{"tags":["knowledge"],"summary":"Semantic search over a knowledge base","operationId":"query_base_v1_knowledge__base_id__query_post","parameters":[{"name":"base_id","in":"path","required":true,"schema":{"type":"string","title":"Base Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeQuery"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RetrievedChunkOut"},"title":"Response Query Base V1 Knowledge  Base Id  Query Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents":{"get":{"tags":["agents"],"summary":"List agents","operationId":"list_agents_v1_agents_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AgentOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["agents"],"summary":"Create an agent","operationId":"create_agent_v1_agents_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentWrite"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{agent_id}":{"get":{"tags":["agents"],"summary":"Fetch an agent","operationId":"get_agent_v1_agents__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["agents"],"summary":"Replace an agent","operationId":"update_agent_v1_agents__agent_id__put","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentWrite"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["agents"],"summary":"Delete an agent","operationId":"delete_agent_v1_agents__agent_id__delete","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{agent_id}/tools":{"post":{"tags":["agents"],"summary":"Grant a tool to an agent","operationId":"add_tool_v1_agents__agent_id__tools_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentToolWrite"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentToolOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{agent_id}/tools/{tool_id}":{"delete":{"tags":["agents"],"summary":"Revoke a tool","operationId":"delete_tool_v1_agents__agent_id__tools__tool_id__delete","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"tool_id","in":"path","required":true,"schema":{"type":"string","title":"Tool Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{agent_id}/runs":{"post":{"tags":["agents"],"summary":"Run an agent","operationId":"run_agent_v1_agents__agent_id__runs_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRunRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["agents"],"summary":"List agent runs","operationId":"list_runs_v1_agents__agent_id__runs_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_AgentRunOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/agents/{agent_id}/runs/{run_id}":{"get":{"tags":["agents"],"summary":"Fetch a run with its tool calls","operationId":"get_run_v1_agents__agent_id__runs__run_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workflows":{"get":{"tags":["workflows"],"summary":"List workflows","operationId":"list_workflows_v1_workflows_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WorkflowOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["workflows"],"summary":"Create a workflow","operationId":"create_workflow_v1_workflows_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowWrite"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workflows/validate":{"post":{"tags":["workflows"],"summary":"Check a graph without saving it","operationId":"validate_only_v1_workflows_validate_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowGraphIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowValidation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workflows/{workflow_id}":{"get":{"tags":["workflows"],"summary":"Fetch a workflow","operationId":"get_workflow_v1_workflows__workflow_id__get","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["workflows"],"summary":"Replace a workflow","operationId":"update_workflow_v1_workflows__workflow_id__put","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowWrite"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["workflows"],"summary":"Delete a workflow","operationId":"delete_workflow_v1_workflows__workflow_id__delete","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workflows/{workflow_id}/runs":{"post":{"tags":["workflows"],"summary":"Execute a workflow","operationId":"run_workflow_v1_workflows__workflow_id__runs_post","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["workflows"],"summary":"List runs","operationId":"list_runs_v1_workflows__workflow_id__runs_get","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_WorkflowRunOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workflows/{workflow_id}/runs/{run_id}":{"get":{"tags":["workflows"],"summary":"Fetch a run with its node results","operationId":"get_run_v1_workflows__workflow_id__runs__run_id__get","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/evaluations":{"get":{"tags":["evaluations"],"summary":"List evaluations","operationId":"list_evaluations_v1_evaluations_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EvaluationOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["evaluations"],"summary":"Create an evaluation","operationId":"create_evaluation_v1_evaluations_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationWrite"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/evaluations/{evaluation_id}":{"get":{"tags":["evaluations"],"summary":"Fetch one","operationId":"get_evaluation_v1_evaluations__evaluation_id__get","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["evaluations"],"summary":"Update one","operationId":"update_evaluation_v1_evaluations__evaluation_id__patch","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationWrite"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["evaluations"],"summary":"Delete an evaluation and its runs","operationId":"delete_evaluation_v1_evaluations__evaluation_id__delete","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/evaluations/{evaluation_id}/cases":{"get":{"tags":["evaluations"],"summary":"List test cases","operationId":"list_cases_v1_evaluations__evaluation_id__cases_get","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EvaluationCaseOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["evaluations"],"summary":"Append test cases","operationId":"add_cases_v1_evaluations__evaluation_id__cases_post","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EvaluationCaseWrite"},"title":"Payload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EvaluationCaseOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/evaluations/{evaluation_id}/cases/{case_id}":{"delete":{"tags":["evaluations"],"summary":"Delete a test case","operationId":"delete_case_v1_evaluations__evaluation_id__cases__case_id__delete","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"case_id","in":"path","required":true,"schema":{"type":"string","title":"Case Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/evaluations/{evaluation_id}/runs":{"post":{"tags":["evaluations"],"summary":"Run an evaluation against one model","operationId":"start_run_v1_evaluations__evaluation_id__runs_post","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationRunRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationRunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["evaluations"],"summary":"List runs","operationId":"list_runs_v1_evaluations__evaluation_id__runs_get","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_EvaluationRunOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/evaluations/{evaluation_id}/runs/{run_id}":{"get":{"tags":["evaluations"],"summary":"Fetch a run with its per-case results","operationId":"get_run_v1_evaluations__evaluation_id__runs__run_id__get","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}},{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationRunDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dashboard":{"get":{"tags":["observability"],"summary":"Headline metrics for a rolling window","operationId":"get_dashboard_v1_dashboard_get","parameters":[{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","maximum":2160,"minimum":1,"default":24,"title":"Window Hours"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/observability/series":{"get":{"tags":["observability"],"summary":"Bucketed traffic, errors, tokens and cost","operationId":"get_series_v1_observability_series_get","parameters":[{"name":"bucket","in":"query","required":false,"schema":{"$ref":"#/components/schemas/TimeBucket","default":"hour"}},{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","maximum":2160,"minimum":1,"default":24,"title":"Window Hours"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TimeSeriesPointOut"},"title":"Response Get Series V1 Observability Series Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/observability/latency":{"get":{"tags":["observability"],"summary":"Per-model latency percentiles","operationId":"get_latency_v1_observability_latency_get","parameters":[{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","maximum":2160,"minimum":1,"default":24,"title":"Window Hours"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LatencyBreakdownOut"},"title":"Response Get Latency V1 Observability Latency Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/observability/requests":{"get":{"tags":["observability"],"summary":"Recent requests","operationId":"list_requests_v1_observability_requests_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/RequestStatus"},{"type":"null"}],"title":"Status"}},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only requests made by this operator through the console.","title":"User Id"},"description":"Only requests made by this operator through the console."},{"name":"api_key_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Only requests made with this API key.","title":"Api Key Id"},"description":"Only requests made with this API key."},{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","maximum":2160,"minimum":1,"default":24,"title":"Window Hours"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_RequestLogOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/observability/requests/{request_id}":{"get":{"tags":["observability"],"summary":"Fetch one request log","operationId":"get_request_v1_observability_requests__request_id__get","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","title":"Request Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestLogOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage":{"get":{"tags":["observability"],"summary":"Billable usage grouped by model, provider or day","operationId":"get_usage_v1_usage_get","parameters":[{"name":"dimension","in":"query","required":false,"schema":{"enum":["model","provider","project","day"],"type":"string","default":"model","title":"Dimension"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UsageSliceOut"},"title":"Response Get Usage V1 Usage Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/budget":{"get":{"tags":["observability"],"summary":"Month-to-date spend against the project budget and plan limits","operationId":"get_budget_v1_usage_budget_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetStatusOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/organization":{"get":{"tags":["tenancy"],"summary":"The organization this key belongs to","operationId":"get_organization_v1_organization_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/project":{"get":{"tags":["tenancy"],"summary":"The current project","operationId":"get_project_v1_project_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["tenancy"],"summary":"Update project settings, budget or default routing policy","operationId":"update_project_v1_project_patch","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys":{"get":{"tags":["credentials"],"summary":"List keys for this project","operationId":"list_keys_v1_keys_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"include_revoked","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Revoked"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_ApiKeyOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["credentials"],"summary":"Create a key (returns the plaintext once)","operationId":"create_key_v1_keys_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreated"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/keys/{key_id}":{"delete":{"tags":["credentials"],"summary":"Revoke a key","operationId":"revoke_key_v1_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}},{"name":"x-aethergrid-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Aethergrid-Session"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AgentOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"system_instructions":{"type":"string","title":"System Instructions","default":""},"model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Slug"},"routing_strategy":{"$ref":"#/components/schemas/RoutingStrategy"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens"},"max_steps":{"type":"integer","title":"Max Steps"},"knowledge_base_ids":{"items":{"type":"string"},"type":"array","title":"Knowledge Base Ids"},"memory_strategy":{"type":"string","title":"Memory Strategy","default":"none"},"memory_window":{"type":"integer","title":"Memory Window","default":10},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"tools":{"items":{"$ref":"#/components/schemas/AgentToolOut"},"type":"array","title":"Tools"}},"type":"object","required":["id","name","slug","routing_strategy","max_steps","created_at"],"title":"AgentOut"},"AgentRunDetail":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"status":{"$ref":"#/components/schemas/AgentRunStatus"},"input_text":{"type":"string","title":"Input Text"},"output_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Text"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"steps_used":{"type":"integer","title":"Steps Used","default":0},"request_ids":{"items":{"type":"string"},"type":"array","title":"Request Ids"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"tool_calls":{"items":{"$ref":"#/components/schemas/AgentToolCallOut"},"type":"array","title":"Tool Calls"}},"type":"object","required":["id","agent_id","status","input_text","created_at"],"title":"AgentRunDetail"},"AgentRunOut":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"thread_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thread Id"},"status":{"$ref":"#/components/schemas/AgentRunStatus"},"input_text":{"type":"string","title":"Input Text"},"output_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output Text"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"steps_used":{"type":"integer","title":"Steps Used","default":0},"request_ids":{"items":{"type":"string"},"type":"array","title":"Request Ids"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","agent_id","status","input_text","created_at"],"title":"AgentRunOut"},"AgentRunRequest":{"properties":{"input":{"type":"string","maxLength":100000,"minLength":1,"title":"Input"},"thread_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Thread Id"}},"type":"object","required":["input"],"title":"AgentRunRequest"},"AgentRunStatus":{"type":"string","enum":["queued","running","succeeded","failed","cancelled","awaiting_approval"],"title":"AgentRunStatus"},"AgentToolCallOut":{"properties":{"id":{"type":"string","title":"Id"},"step":{"type":"integer","title":"Step"},"tool_name":{"type":"string","title":"Tool Name"},"arguments":{"additionalProperties":true,"type":"object","title":"Arguments"},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"},"succeeded":{"type":"boolean","title":"Succeeded"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"}},"type":"object","required":["id","step","tool_name","succeeded"],"title":"AgentToolCallOut"},"AgentToolOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"kind":{"type":"string","title":"Kind"},"input_schema":{"additionalProperties":true,"type":"object","title":"Input Schema"},"allowed_hosts":{"items":{"type":"string"},"type":"array","title":"Allowed Hosts"},"requires_approval":{"type":"boolean","title":"Requires Approval","default":false},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true}},"type":"object","required":["id","name","kind"],"title":"AgentToolOut"},"AgentToolWrite":{"properties":{"name":{"type":"string","maxLength":100,"pattern":"^[a-zA-Z0-9_\\-]+$","title":"Name"},"description":{"type":"string","title":"Description","default":""},"kind":{"type":"string","title":"Kind"},"input_schema":{"additionalProperties":true,"type":"object","title":"Input Schema"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"allowed_hosts":{"items":{"type":"string"},"type":"array","title":"Allowed Hosts"},"requires_approval":{"type":"boolean","title":"Requires Approval","default":false},"is_enabled":{"type":"boolean","title":"Is Enabled","default":true}},"type":"object","required":["name","kind"],"title":"AgentToolWrite"},"AgentWrite":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name"},"slug":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"system_instructions":{"type":"string","title":"System Instructions","default":""},"model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Slug"},"routing_strategy":{"$ref":"#/components/schemas/RoutingStrategy","default":"explicit"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"},"max_steps":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Steps","default":8},"knowledge_base_ids":{"items":{"type":"string"},"type":"array","title":"Knowledge Base Ids"},"memory_strategy":{"type":"string","enum":["none","window"],"title":"Memory Strategy","default":"none"},"memory_window":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Memory Window","default":10},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name"],"title":"AgentWrite"},"ApiKeyCreate":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name"},"environment":{"$ref":"#/components/schemas/KeyEnvironment","default":"live"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["name"],"title":"ApiKeyCreate"},"ApiKeyCreated":{"properties":{"key":{"$ref":"#/components/schemas/ApiKeyOut"},"plaintext":{"type":"string","title":"Plaintext"},"warning":{"type":"string","title":"Warning","default":"Copy this key now. It is hashed before storage and cannot be shown again."}},"type":"object","required":["key","plaintext"],"title":"ApiKeyCreated","description":"The only response that ever carries a plaintext key."},"ApiKeyOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"masked":{"type":"string","title":"Masked"},"environment":{"$ref":"#/components/schemas/KeyEnvironment"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"is_active":{"type":"boolean","title":"Is Active"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","masked","environment","is_active","created_at"],"title":"ApiKeyOut"},"Body_ingest_document_v1_knowledge__base_id__documents_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_ingest_document_v1_knowledge__base_id__documents_post"},"BudgetStatusOut":{"properties":{"plan":{"$ref":"#/components/schemas/PlanTier"},"month_start":{"type":"string","format":"date","title":"Month Start"},"spend_usd":{"type":"number","title":"Spend Usd"},"customer_spend_usd":{"type":"number","title":"Customer Spend Usd","default":0.0},"budget_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget Usd"},"percent_used":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent Used"},"is_over_budget":{"type":"boolean","title":"Is Over Budget"},"is_over_threshold":{"type":"boolean","title":"Is Over Threshold"},"enforced":{"type":"boolean","title":"Enforced"},"requests_this_month":{"type":"integer","title":"Requests This Month"},"request_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Request Limit"},"unpriced_requests":{"type":"integer","title":"Unpriced Requests"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["plan","month_start","spend_usd","is_over_budget","is_over_threshold","enforced","requests_this_month","unpriced_requests"],"title":"BudgetStatusOut"},"ChatCompletionRequest":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/ChatMessageIn"},"type":"array","minItems":1,"title":"Messages"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"strategy":{"anyOf":[{"$ref":"#/components/schemas/RoutingStrategy"},{"type":"null"}]},"system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System"},"max_tokens":{"anyOf":[{"type":"integer","maximum":200000.0,"minimum":1.0},{"type":"null"}],"title":"Max Tokens"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Top P"},"stop_sequences":{"items":{"type":"string"},"type":"array","title":"Stop Sequences"},"tools":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Tools"},"tool_choice":{"anyOf":[{"type":"string","enum":["auto","any","none"]},{"type":"null"}],"title":"Tool Choice"},"response_schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Schema"},"stream":{"type":"boolean","title":"Stream","default":false},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"additionalProperties":false,"type":"object","required":["messages"],"title":"ChatCompletionRequest"},"ChatCompletionResponse":{"properties":{"request_id":{"type":"string","title":"Request Id"},"content":{"type":"string","title":"Content"},"tool_calls":{"items":{"$ref":"#/components/schemas/ToolCallOut"},"type":"array","title":"Tool Calls"},"finish_reason":{"type":"string","title":"Finish Reason"},"model":{"type":"string","title":"Model"},"provider":{"type":"string","title":"Provider"},"upstream_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Upstream Provider"},"usage":{"$ref":"#/components/schemas/UsageOut"},"latency_ms":{"type":"number","title":"Latency Ms"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"cost_is_estimated":{"type":"boolean","title":"Cost Is Estimated","default":true},"customer_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Customer Cost Usd"},"did_fallback":{"type":"boolean","title":"Did Fallback","default":false},"attempt_count":{"type":"integer","title":"Attempt Count","default":1},"routing_strategy":{"$ref":"#/components/schemas/RoutingStrategy"},"routing_reason":{"type":"string","title":"Routing Reason"}},"type":"object","required":["request_id","content","finish_reason","model","provider","usage","latency_ms","routing_strategy","routing_reason"],"title":"ChatCompletionResponse"},"ChatMessageIn":{"properties":{"role":{"$ref":"#/components/schemas/MessageRole"},"content":{"anyOf":[{"type":"string"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"}],"title":"Content"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"tool_call_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Call Id"}},"type":"object","required":["role","content"],"title":"ChatMessageIn"},"ComparisonEntry":{"properties":{"model":{"type":"string","title":"Model"},"provider":{"type":"string","title":"Provider"},"succeeded":{"type":"boolean","title":"Succeeded"},"content":{"type":"string","title":"Content","default":""},"usage":{"anyOf":[{"$ref":"#/components/schemas/UsageOut"},{"type":"null"}]},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"cost_is_estimated":{"type":"boolean","title":"Cost Is Estimated","default":false},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["model","provider","succeeded"],"title":"ComparisonEntry"},"ComparisonRequest":{"properties":{"messages":{"items":{"$ref":"#/components/schemas/ChatMessageIn"},"type":"array","minItems":1,"title":"Messages"},"model_slugs":{"items":{"type":"string"},"type":"array","maxItems":6,"minItems":1,"title":"Model Slugs"},"system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System"},"max_tokens":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Tokens"},"temperature":{"anyOf":[{"type":"number","maximum":2.0,"minimum":0.0},{"type":"null"}],"title":"Temperature"}},"additionalProperties":false,"type":"object","required":["messages","model_slugs"],"title":"ComparisonRequest"},"ComparisonResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/ComparisonEntry"},"type":"array","title":"Entries"},"cheapest_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cheapest Model"},"fastest_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fastest Model"}},"type":"object","required":["entries"],"title":"ComparisonResponse"},"ComponentHealth":{"properties":{"name":{"type":"string","title":"Name"},"healthy":{"type":"boolean","title":"Healthy"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},"type":"object","required":["name","healthy"],"title":"ComponentHealth"},"ConversationCreate":{"properties":{"title":{"type":"string","maxLength":300,"title":"Title","default":"Untitled conversation"},"model_slugs":{"items":{"type":"string"},"type":"array","title":"Model Slugs"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters"},"is_comparison":{"type":"boolean","title":"Is Comparison","default":false},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","title":"ConversationCreate"},"ConversationDetail":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"model_slugs":{"items":{"type":"string"},"type":"array","title":"Model Slugs"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters"},"is_comparison":{"type":"boolean","title":"Is Comparison","default":false},"is_archived":{"type":"boolean","title":"Is Archived","default":false},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"messages":{"items":{"$ref":"#/components/schemas/ConversationMessageOut"},"type":"array","title":"Messages"}},"type":"object","required":["id","title","created_at","updated_at"],"title":"ConversationDetail"},"ConversationMessageOut":{"properties":{"id":{"type":"string","title":"Id"},"sequence":{"type":"integer","title":"Sequence"},"role":{"$ref":"#/components/schemas/MessageRole"},"content":{"type":"string","title":"Content"},"model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Slug"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"input_tokens":{"type":"integer","title":"Input Tokens","default":0},"output_tokens":{"type":"integer","title":"Output Tokens","default":0},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"time_to_first_token_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Time To First Token Ms"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","sequence","role","content","created_at"],"title":"ConversationMessageOut"},"ConversationOut":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"model_slugs":{"items":{"type":"string"},"type":"array","title":"Model Slugs"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters"},"is_comparison":{"type":"boolean","title":"Is Comparison","default":false},"is_archived":{"type":"boolean","title":"Is Archived","default":false},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","title","created_at","updated_at"],"title":"ConversationOut"},"ConversationUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Title"},"is_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Archived"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"}},"type":"object","title":"ConversationUpdate"},"DashboardResponse":{"properties":{"window_hours":{"type":"integer","title":"Window Hours"},"has_data":{"type":"boolean","title":"Has Data"},"total_requests":{"type":"integer","title":"Total Requests"},"successful_requests":{"type":"integer","title":"Successful Requests"},"failed_requests":{"type":"integer","title":"Failed Requests"},"success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Success Rate"},"total_tokens":{"type":"integer","title":"Total Tokens"},"input_tokens":{"type":"integer","title":"Input Tokens"},"output_tokens":{"type":"integer","title":"Output Tokens"},"total_cost_usd":{"type":"number","title":"Total Cost Usd"},"customer_total_cost_usd":{"type":"number","title":"Customer Total Cost Usd","default":0.0},"estimated_cost_share":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Cost Share"},"unpriced_requests":{"type":"integer","title":"Unpriced Requests"},"p50_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P50 Latency Ms"},"p95_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P95 Latency Ms"},"p99_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P99 Latency Ms"},"p50_ttft_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P50 Ttft Ms"},"fallback_count":{"type":"integer","title":"Fallback Count"},"distinct_models":{"type":"integer","title":"Distinct Models"}},"type":"object","required":["window_hours","has_data","total_requests","successful_requests","failed_requests","total_tokens","input_tokens","output_tokens","total_cost_usd","unpriced_requests","fallback_count","distinct_models"],"title":"DashboardResponse","description":"Mirrors `observability.rollups.DashboardSummary` field for field.\n\nDeliberately not a reshaped view of it: when the API and the aggregation\ndisagree about what a number means, the number on the dashboard is the one\npeople trust, and it is the one that is wrong."},"DocumentOut":{"properties":{"id":{"type":"string","title":"Id"},"knowledge_base_id":{"type":"string","title":"Knowledge Base Id"},"filename":{"type":"string","title":"Filename"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"size_bytes":{"type":"integer","title":"Size Bytes","default":0},"status":{"$ref":"#/components/schemas/DocumentStatus"},"extraction_engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extraction Engine"},"page_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Count"},"character_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Character Count"},"chunk_count":{"type":"integer","title":"Chunk Count","default":0},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"ingested_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Ingested At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","knowledge_base_id","filename","status","created_at"],"title":"DocumentOut"},"DocumentStatus":{"type":"string","enum":["uploaded","extracting","chunking","embedding","ready","failed"],"title":"DocumentStatus","description":"Lifecycle of an uploaded document through the ingestion pipeline."},"EvaluationCaseOut":{"properties":{"id":{"type":"string","title":"Id"},"sequence":{"type":"integer","title":"Sequence"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"input_text":{"type":"string","title":"Input Text"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","sequence","input_text"],"title":"EvaluationCaseOut"},"EvaluationCaseWrite":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"input_text":{"type":"string","minLength":1,"title":"Input Text"},"expected_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Output"},"case_metadata":{"additionalProperties":true,"type":"object","title":"Case Metadata"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["input_text"],"title":"EvaluationCaseWrite"},"EvaluationOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"dataset_version":{"type":"integer","title":"Dataset Version"},"scorer":{"$ref":"#/components/schemas/ScorerKind"},"scorer_config":{"additionalProperties":true,"type":"object","title":"Scorer Config"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"model_slugs":{"items":{"type":"string"},"type":"array","title":"Model Slugs"},"pass_threshold":{"type":"number","title":"Pass Threshold"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"case_count":{"type":"integer","title":"Case Count","default":0}},"type":"object","required":["id","name","slug","dataset_version","scorer","pass_threshold","is_active","created_at"],"title":"EvaluationOut"},"EvaluationResultOut":{"properties":{"id":{"type":"string","title":"Id"},"case_id":{"type":"string","title":"Case Id"},"actual_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actual Output"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"},"passed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Passed"},"rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rationale"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["id","case_id"],"title":"EvaluationResultOut"},"EvaluationRunDetail":{"properties":{"id":{"type":"string","title":"Id"},"evaluation_id":{"type":"string","title":"Evaluation Id"},"model_slug":{"type":"string","title":"Model Slug"},"dataset_version":{"type":"integer","title":"Dataset Version"},"status":{"$ref":"#/components/schemas/EvaluationRunStatus"},"baseline_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Baseline Run Id"},"total_cases":{"type":"integer","title":"Total Cases"},"passed_cases":{"type":"integer","title":"Passed Cases"},"failed_cases":{"type":"integer","title":"Failed Cases"},"errored_cases":{"type":"integer","title":"Errored Cases"},"average_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Score"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"avg_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Latency Ms"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"results":{"items":{"$ref":"#/components/schemas/EvaluationResultOut"},"type":"array","title":"Results"},"regressions":{"items":{"type":"string"},"type":"array","title":"Regressions"},"improvements":{"items":{"type":"string"},"type":"array","title":"Improvements"}},"type":"object","required":["id","evaluation_id","model_slug","dataset_version","status","total_cases","passed_cases","failed_cases","errored_cases","created_at"],"title":"EvaluationRunDetail"},"EvaluationRunOut":{"properties":{"id":{"type":"string","title":"Id"},"evaluation_id":{"type":"string","title":"Evaluation Id"},"model_slug":{"type":"string","title":"Model Slug"},"dataset_version":{"type":"integer","title":"Dataset Version"},"status":{"$ref":"#/components/schemas/EvaluationRunStatus"},"baseline_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Baseline Run Id"},"total_cases":{"type":"integer","title":"Total Cases"},"passed_cases":{"type":"integer","title":"Passed Cases"},"failed_cases":{"type":"integer","title":"Failed Cases"},"errored_cases":{"type":"integer","title":"Errored Cases"},"average_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Average Score"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"avg_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Latency Ms"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","evaluation_id","model_slug","dataset_version","status","total_cases","passed_cases","failed_cases","errored_cases","created_at"],"title":"EvaluationRunOut"},"EvaluationRunRequest":{"properties":{"model_slug":{"type":"string","title":"Model Slug"},"baseline_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Baseline Run Id"}},"type":"object","required":["model_slug"],"title":"EvaluationRunRequest"},"EvaluationRunStatus":{"type":"string","enum":["queued","running","completed","failed"],"title":"EvaluationRunStatus"},"EvaluationWrite":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name"},"slug":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"scorer":{"$ref":"#/components/schemas/ScorerKind","default":"exact_match"},"scorer_config":{"additionalProperties":true,"type":"object","title":"Scorer Config"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"model_slugs":{"items":{"type":"string"},"type":"array","title":"Model Slugs"},"pass_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Pass Threshold","default":1.0},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name"],"title":"EvaluationWrite"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","enum":["ok","degraded"],"title":"Status"},"version":{"type":"string","title":"Version"},"environment":{"type":"string","title":"Environment"},"components":{"items":{"$ref":"#/components/schemas/ComponentHealth"},"type":"array","title":"Components"}},"type":"object","required":["status","version","environment","components"],"title":"HealthResponse"},"IngestionResponse":{"properties":{"document_id":{"type":"string","title":"Document Id"},"status":{"$ref":"#/components/schemas/DocumentStatus"},"chunk_count":{"type":"integer","title":"Chunk Count"},"character_count":{"type":"integer","title":"Character Count"},"page_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Count"},"embedded":{"type":"boolean","title":"Embedded"},"warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning"}},"type":"object","required":["document_id","status","chunk_count","character_count","embedded"],"title":"IngestionResponse"},"KeyEnvironment":{"type":"string","enum":["live","test"],"title":"KeyEnvironment"},"KnowledgeBaseCreate":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name"},"slug":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"embedding_model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Embedding Model Slug"},"embedding_dimensions":{"type":"integer","maximum":4096.0,"minimum":16.0,"title":"Embedding Dimensions","default":1536},"chunk_size":{"type":"integer","maximum":8000.0,"minimum":100.0,"title":"Chunk Size","default":1000},"chunk_overlap":{"type":"integer","maximum":2000.0,"minimum":0.0,"title":"Chunk Overlap","default":150}},"type":"object","required":["name"],"title":"KnowledgeBaseCreate"},"KnowledgeBaseOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"embedding_model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Embedding Model Slug"},"embedding_dimensions":{"type":"integer","title":"Embedding Dimensions"},"chunk_size":{"type":"integer","title":"Chunk Size"},"chunk_overlap":{"type":"integer","title":"Chunk Overlap"},"document_count":{"type":"integer","title":"Document Count","default":0},"chunk_count":{"type":"integer","title":"Chunk Count","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","slug","embedding_dimensions","chunk_size","chunk_overlap","created_at"],"title":"KnowledgeBaseOut"},"KnowledgeQuery":{"properties":{"query":{"type":"string","maxLength":8000,"minLength":1,"title":"Query"},"limit":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Limit","default":5},"min_score":{"type":"number","maximum":1.0,"minimum":-1.0,"title":"Min Score","default":0.0}},"type":"object","required":["query"],"title":"KnowledgeQuery"},"LatencyBreakdownOut":{"properties":{"model_slug":{"type":"string","title":"Model Slug"},"samples":{"type":"integer","title":"Samples"},"p50_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P50 Ms"},"p95_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P95 Ms"},"p99_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P99 Ms"},"p50_ttft_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"P50 Ttft Ms"},"is_sampled":{"type":"boolean","title":"Is Sampled","default":false}},"type":"object","required":["model_slug","samples"],"title":"LatencyBreakdownOut"},"LoginRequest":{"properties":{"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"password":{"type":"string","maxLength":1024,"minLength":1,"title":"Password"}},"additionalProperties":false,"type":"object","required":["email","password"],"title":"LoginRequest","description":"Credentials posted by the console's login form.\n\n`extra=\"forbid\"` so a client that sends, say, `role` or `scopes` alongside\nthe password gets a 422 rather than having it silently ignored — a field\nthat looks accepted but is not is how privilege-escalation bugs start."},"LoginResponse":{"properties":{"token":{"type":"string","title":"Token"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"session":{"$ref":"#/components/schemas/SessionOut"}},"type":"object","required":["token","expires_at","session"],"title":"LoginResponse","description":"The one response that carries a session token.\n\nThe console reads `token`, stores it in an httpOnly cookie, and does not\nforward this body to the browser."},"MessageAppend":{"properties":{"role":{"$ref":"#/components/schemas/MessageRole"},"content":{"type":"string","title":"Content"},"model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Slug"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"input_tokens":{"type":"integer","title":"Input Tokens","default":0},"output_tokens":{"type":"integer","title":"Output Tokens","default":0},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"time_to_first_token_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Time To First Token Ms"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["role","content"],"title":"MessageAppend"},"MessageRole":{"type":"string","enum":["system","user","assistant","tool"],"title":"MessageRole"},"ModelOut":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"provider_slug":{"type":"string","title":"Provider Slug","default":""},"provider_model_id":{"type":"string","title":"Provider Model Id"},"display_name":{"type":"string","title":"Display Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Family"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"context_window":{"type":"integer","title":"Context Window"},"max_output_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Output Tokens"},"input_modalities":{"items":{"type":"string"},"type":"array","title":"Input Modalities"},"output_modalities":{"items":{"type":"string"},"type":"array","title":"Output Modalities"},"supports_streaming":{"type":"boolean","title":"Supports Streaming"},"supports_tools":{"type":"boolean","title":"Supports Tools"},"supports_vision":{"type":"boolean","title":"Supports Vision"},"supports_structured_output":{"type":"boolean","title":"Supports Structured Output"},"supports_reasoning":{"type":"boolean","title":"Supports Reasoning"},"supports_caching":{"type":"boolean","title":"Supports Caching"},"input_price_per_1m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Input Price Per 1M"},"output_price_per_1m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Output Price Per 1M"},"cached_input_price_per_1m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cached Input Price Per 1M"},"currency":{"type":"string","title":"Currency","default":"USD"},"observed_p50_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Observed P50 Latency Ms"},"observed_success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Observed Success Rate"},"observed_cost_per_1m_tokens":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Observed Cost Per 1M Tokens"},"observed_sample_size":{"type":"integer","title":"Observed Sample Size","default":0},"customer_input_price_per_1m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Customer Input Price Per 1M"},"customer_output_price_per_1m":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Customer Output Price Per 1M"},"quality_tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quality Tier"},"status":{"$ref":"#/components/schemas/ModelStatus"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"deprecated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deprecated At"},"retires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Retires At"},"replacement_model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Replacement Model Slug"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"}},"type":"object","required":["id","slug","provider_model_id","display_name","context_window","supports_streaming","supports_tools","supports_vision","supports_structured_output","supports_reasoning","supports_caching","status","is_enabled"],"title":"ModelOut"},"ModelStatus":{"type":"string","enum":["available","preview","deprecated","retired"],"title":"ModelStatus"},"OAuthExchangeRequest":{"properties":{"code":{"type":"string","maxLength":256,"minLength":16,"title":"Code"}},"additionalProperties":false,"type":"object","required":["code"],"title":"OAuthExchangeRequest","description":"The console trades the one-time code from the OAuth callback for a session."},"OAuthProvidersOut":{"properties":{"providers":{"items":{"type":"string"},"type":"array","title":"Providers"},"signup_enabled":{"type":"boolean","title":"Signup Enabled"}},"type":"object","required":["providers","signup_enabled"],"title":"OAuthProvidersOut","description":"Which external sign-ins this deployment offers. Only configured ones appear."},"OrganizationOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"plan_tier":{"$ref":"#/components/schemas/PlanTier"},"monthly_budget_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Monthly Budget Usd"},"is_active":{"type":"boolean","title":"Is Active"}},"type":"object","required":["id","name","slug","plan_tier","is_active"],"title":"OrganizationOut"},"Page_AgentOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AgentOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[AgentOut]"},"Page_AgentRunOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AgentRunOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[AgentRunOut]"},"Page_ApiKeyOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiKeyOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[ApiKeyOut]"},"Page_ConversationOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ConversationOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[ConversationOut]"},"Page_DocumentOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DocumentOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[DocumentOut]"},"Page_EvaluationCaseOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EvaluationCaseOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[EvaluationCaseOut]"},"Page_EvaluationOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EvaluationOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[EvaluationOut]"},"Page_EvaluationRunOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EvaluationRunOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[EvaluationRunOut]"},"Page_KnowledgeBaseOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/KnowledgeBaseOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[KnowledgeBaseOut]"},"Page_ModelOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ModelOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[ModelOut]"},"Page_RequestLogOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RequestLogOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[RequestLogOut]"},"Page_RoutingPolicyOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/RoutingPolicyOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[RoutingPolicyOut]"},"Page_WorkflowOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WorkflowOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[WorkflowOut]"},"Page_WorkflowRunOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WorkflowRunOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"Page[WorkflowRunOut]"},"PlanTier":{"type":"string","enum":["free","pro","scale","enterprise"],"title":"PlanTier","description":"Commercial tiers. Limits are enforced; no payment processing exists yet."},"ProjectOut":{"properties":{"id":{"type":"string","title":"Id"},"organization_id":{"type":"string","title":"Organization Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"type":"boolean","title":"Is Active"},"monthly_budget_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Monthly Budget Usd"},"enforce_budget":{"type":"boolean","title":"Enforce Budget","default":false},"alert_threshold_pct":{"type":"integer","title":"Alert Threshold Pct","default":80},"default_routing_policy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Routing Policy Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","organization_id","name","slug","is_active","created_at"],"title":"ProjectOut"},"ProjectUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"monthly_budget_usd":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Monthly Budget Usd"},"enforce_budget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enforce Budget"},"alert_threshold_pct":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Alert Threshold Pct"},"default_routing_policy_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Routing Policy Id"}},"type":"object","title":"ProjectUpdate"},"ProviderHealthOut":{"properties":{"slug":{"type":"string","title":"Slug"},"status":{"$ref":"#/components/schemas/ProviderStatus"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"},"checked_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checked Model"},"circuit_state":{"type":"string","title":"Circuit State"},"consecutive_failures":{"type":"integer","title":"Consecutive Failures"},"observed_success_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Observed Success Rate"}},"type":"object","required":["slug","status","circuit_state","consecutive_failures"],"title":"ProviderHealthOut"},"ProviderOut":{"properties":{"id":{"type":"string","title":"Id"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"documentation_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Documentation Url"},"is_configured":{"type":"boolean","title":"Is Configured"},"is_enabled":{"type":"boolean","title":"Is Enabled"},"status":{"$ref":"#/components/schemas/ProviderStatus"},"last_health_check_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Health Check At"},"last_health_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Last Health Latency Ms"},"model_count":{"type":"integer","title":"Model Count","default":0}},"type":"object","required":["id","slug","name","is_configured","is_enabled","status"],"title":"ProviderOut"},"ProviderStatus":{"type":"string","enum":["operational","degraded","outage","not_configured","unknown"],"title":"ProviderStatus"},"RequestLogOut":{"properties":{"id":{"type":"string","title":"Id"},"api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key Id"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"},"model_slug":{"type":"string","title":"Model Slug"},"provider_slug":{"type":"string","title":"Provider Slug"},"requested_model_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested Model Slug"},"routing_strategy":{"anyOf":[{"$ref":"#/components/schemas/RoutingStrategy"},{"type":"null"}]},"routing_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Routing Reason"},"status":{"$ref":"#/components/schemas/RequestStatus"},"is_streaming":{"type":"boolean","title":"Is Streaming","default":false},"input_tokens":{"type":"integer","title":"Input Tokens","default":0},"output_tokens":{"type":"integer","title":"Output Tokens","default":0},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"time_to_first_token_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Time To First Token Ms"},"cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Usd"},"cost_is_estimated":{"type":"boolean","title":"Cost Is Estimated","default":true},"customer_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Customer Cost Usd"},"did_fallback":{"type":"boolean","title":"Did Fallback","default":false},"attempt_count":{"type":"integer","title":"Attempt Count","default":1},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","model_slug","provider_slug","status","started_at"],"title":"RequestLogOut"},"RequestStatus":{"type":"string","enum":["pending","streaming","succeeded","failed","cancelled","timeout"],"title":"RequestStatus"},"RetrievedChunkOut":{"properties":{"chunk_id":{"type":"string","title":"Chunk Id"},"document_id":{"type":"string","title":"Document Id"},"content":{"type":"string","title":"Content"},"score":{"type":"number","title":"Score"},"citation":{"type":"string","title":"Citation"},"sequence":{"type":"integer","title":"Sequence"},"page_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Page Number"},"retrieval_mode":{"type":"string","title":"Retrieval Mode","default":"vector"}},"type":"object","required":["chunk_id","document_id","content","score","citation","sequence"],"title":"RetrievedChunkOut"},"RouteCandidateOut":{"properties":{"slug":{"type":"string","title":"Slug"},"provider":{"type":"string","title":"Provider"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["slug","provider"],"title":"RouteCandidateOut"},"RoutePreviewResponse":{"properties":{"primary":{"$ref":"#/components/schemas/RouteCandidateOut"},"fallbacks":{"items":{"$ref":"#/components/schemas/RouteCandidateOut"},"type":"array","title":"Fallbacks"},"strategy":{"$ref":"#/components/schemas/RoutingStrategy"},"reason":{"type":"string","title":"Reason"},"considered":{"type":"integer","title":"Considered"},"eliminated":{"items":{"$ref":"#/components/schemas/RouteCandidateOut"},"type":"array","title":"Eliminated"}},"type":"object","required":["primary","fallbacks","strategy","reason","considered","eliminated"],"title":"RoutePreviewResponse","description":"What the router *would* do. No upstream call is made."},"RoutingPolicyOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"strategy":{"$ref":"#/components/schemas/RoutingStrategy"},"candidate_model_slugs":{"items":{"type":"string"},"type":"array","title":"Candidate Model Slugs"},"fallback_model_slugs":{"items":{"type":"string"},"type":"array","title":"Fallback Model Slugs"},"require_tools":{"type":"boolean","title":"Require Tools","default":false},"require_vision":{"type":"boolean","title":"Require Vision","default":false},"require_structured_output":{"type":"boolean","title":"Require Structured Output","default":false},"require_streaming":{"type":"boolean","title":"Require Streaming","default":false},"min_context_window":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Context Window"},"min_quality_tier":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Min Quality Tier"},"max_cost_per_1m_input":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Cost Per 1M Input"},"max_cost_per_1m_output":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Cost Per 1M Output"},"max_latency_p50_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Latency P50 Ms"},"max_attempts":{"type":"integer","title":"Max Attempts","default":3},"enable_fallback":{"type":"boolean","title":"Enable Fallback","default":true},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","strategy","created_at"],"title":"RoutingPolicyOut"},"RoutingPolicyWrite":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"strategy":{"$ref":"#/components/schemas/RoutingStrategy","default":"cost"},"candidate_model_slugs":{"items":{"type":"string"},"type":"array","title":"Candidate Model Slugs"},"fallback_model_slugs":{"items":{"type":"string"},"type":"array","title":"Fallback Model Slugs"},"require_tools":{"type":"boolean","title":"Require Tools","default":false},"require_vision":{"type":"boolean","title":"Require Vision","default":false},"require_structured_output":{"type":"boolean","title":"Require Structured Output","default":false},"require_streaming":{"type":"boolean","title":"Require Streaming","default":false},"min_context_window":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Min Context Window"},"min_quality_tier":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Min Quality Tier"},"max_cost_per_1m_input":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Max Cost Per 1M Input"},"max_cost_per_1m_output":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Max Cost Per 1M Output"},"max_latency_p50_ms":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Max Latency P50 Ms"},"max_attempts":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Attempts","default":3},"enable_fallback":{"type":"boolean","title":"Enable Fallback","default":true},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name"],"title":"RoutingPolicyWrite"},"RoutingStrategy":{"type":"string","enum":["explicit","cost","latency","quality","balanced"],"title":"RoutingStrategy","description":"How the router picks among candidate models.\n\nPhase 1 implements all four deterministically. The `Router` interface takes the\nfull candidate set plus live health/metrics, which is the same signature an\nML-based policy would need — see docs/architecture.md#routing."},"ScorerKind":{"type":"string","enum":["exact_match","contains","regex","json_equals","llm_judge"],"title":"ScorerKind","description":"How an evaluation case is scored.\n\n`exact_match`, `contains`, `regex` and `json_equals` are deterministic and\nfully implemented. `llm_judge` runs a real model call through the gateway\nusing the same cost accounting as any other request."},"SessionOut":{"properties":{"user":{"$ref":"#/components/schemas/SessionUser"},"organization_id":{"type":"string","title":"Organization Id"},"organization_name":{"type":"string","title":"Organization Name"},"project_id":{"type":"string","title":"Project Id"},"role":{"type":"string","title":"Role"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["user","organization_id","organization_name","project_id","role","scopes"],"title":"SessionOut","description":"Everything the console learns about its own session.\n\nDeliberately does **not** include the session token. The token is returned\nonce, by `login`, into the console server's own memory; it is never part of\nan identity response that a page might render or log."},"SessionUser":{"properties":{"id":{"type":"string","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"email_verified":{"type":"boolean","title":"Email Verified","default":true}},"type":"object","required":["id","email"],"title":"SessionUser","description":"The signed-in identity, as the console needs to render it."},"SignupRequest":{"properties":{"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"password":{"type":"string","maxLength":1024,"minLength":12,"title":"Password"},"full_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Full Name"},"organization_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Organization Name"}},"additionalProperties":false,"type":"object","required":["email","password"],"title":"SignupRequest","description":"A new account and its first workspace, from the public signup form."},"TimeBucket":{"type":"string","enum":["hour","day"],"title":"TimeBucket"},"TimeSeriesPointOut":{"properties":{"bucket":{"type":"string","title":"Bucket"},"requests":{"type":"integer","title":"Requests"},"errors":{"type":"integer","title":"Errors"},"tokens":{"type":"integer","title":"Tokens"},"cost_usd":{"type":"number","title":"Cost Usd"},"avg_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Latency Ms"}},"type":"object","required":["bucket","requests","errors","tokens","cost_usd"],"title":"TimeSeriesPointOut"},"ToolCallOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"arguments":{"additionalProperties":true,"type":"object","title":"Arguments"}},"type":"object","required":["id","name"],"title":"ToolCallOut"},"UsageOut":{"properties":{"input_tokens":{"type":"integer","title":"Input Tokens","default":0},"output_tokens":{"type":"integer","title":"Output Tokens","default":0},"cached_input_tokens":{"type":"integer","title":"Cached Input Tokens","default":0},"reasoning_tokens":{"type":"integer","title":"Reasoning Tokens","default":0},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"is_estimated":{"type":"boolean","title":"Is Estimated","default":false}},"type":"object","title":"UsageOut"},"UsageSliceOut":{"properties":{"key":{"type":"string","title":"Key"},"requests":{"type":"integer","title":"Requests"},"input_tokens":{"type":"integer","title":"Input Tokens"},"output_tokens":{"type":"integer","title":"Output Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"},"cost_usd":{"type":"number","title":"Cost Usd"},"customer_cost_usd":{"type":"number","title":"Customer Cost Usd","default":0.0},"unpriced_requests":{"type":"integer","title":"Unpriced Requests"},"avg_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Latency Ms"},"share_of_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Share Of Cost"}},"type":"object","required":["key","requests","input_tokens","output_tokens","total_tokens","cost_usd","unpriced_requests"],"title":"UsageSliceOut"},"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"},"VerifyEmailRequest":{"properties":{"token":{"type":"string","maxLength":256,"minLength":16,"title":"Token"}},"additionalProperties":false,"type":"object","required":["token"],"title":"VerifyEmailRequest"},"WorkflowGraphIn":{"properties":{"nodes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Nodes"},"edges":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Edges"}},"additionalProperties":false,"type":"object","title":"WorkflowGraphIn","description":"Just the executable graph.\n\nThe validate endpoint takes this rather than `WorkflowWrite`: a builder\nchecks the canvas on every edit, long before the workflow has a name, and\ndemanding one would make the check unusable exactly when it is most useful."},"WorkflowNodeRunOut":{"properties":{"id":{"type":"string","title":"Id"},"node_id":{"type":"string","title":"Node Id"},"node_type":{"type":"string","title":"Node Type"},"sequence":{"type":"integer","title":"Sequence"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"output_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output Payload"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"}},"type":"object","required":["id","node_id","node_type","sequence","status"],"title":"WorkflowNodeRunOut"},"WorkflowOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"version":{"type":"integer","title":"Version"},"nodes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Nodes"},"edges":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Edges"},"input_schema":{"additionalProperties":true,"type":"object","title":"Input Schema"},"is_active":{"type":"boolean","title":"Is Active","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","slug","version","created_at","updated_at"],"title":"WorkflowOut"},"WorkflowRunDetail":{"properties":{"id":{"type":"string","title":"Id"},"workflow_id":{"type":"string","title":"Workflow Id"},"workflow_version":{"type":"integer","title":"Workflow Version"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"trigger_source":{"type":"string","title":"Trigger Source"},"input_payload":{"additionalProperties":true,"type":"object","title":"Input Payload"},"output_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output Payload"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"node_runs":{"items":{"$ref":"#/components/schemas/WorkflowNodeRunOut"},"type":"array","title":"Node Runs"}},"type":"object","required":["id","workflow_id","workflow_version","status","trigger_source","created_at"],"title":"WorkflowRunDetail"},"WorkflowRunOut":{"properties":{"id":{"type":"string","title":"Id"},"workflow_id":{"type":"string","title":"Workflow Id"},"workflow_version":{"type":"integer","title":"Workflow Version"},"status":{"$ref":"#/components/schemas/WorkflowRunStatus"},"trigger_source":{"type":"string","title":"Trigger Source"},"input_payload":{"additionalProperties":true,"type":"object","title":"Input Payload"},"output_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Output Payload"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"total_cost_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Cost Usd"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","workflow_id","workflow_version","status","trigger_source","created_at"],"title":"WorkflowRunOut"},"WorkflowRunRequest":{"properties":{"input":{"additionalProperties":true,"type":"object","title":"Input"}},"type":"object","title":"WorkflowRunRequest"},"WorkflowRunStatus":{"type":"string","enum":["queued","running","succeeded","failed","cancelled"],"title":"WorkflowRunStatus"},"WorkflowValidation":{"properties":{"valid":{"type":"boolean","title":"Valid"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"execution_order":{"items":{"type":"string"},"type":"array","title":"Execution Order"}},"type":"object","required":["valid"],"title":"WorkflowValidation"},"WorkflowWrite":{"properties":{"name":{"type":"string","maxLength":200,"title":"Name"},"slug":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Slug"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"nodes":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Nodes"},"edges":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Edges"},"input_schema":{"additionalProperties":true,"type":"object","title":"Input Schema"},"is_active":{"type":"boolean","title":"Is Active","default":true}},"type":"object","required":["name"],"title":"WorkflowWrite"}}},"tags":[{"name":"health","description":"Liveness and readiness probes. Unauthenticated."},{"name":"inference","description":"The unified chat endpoint, buffered and streaming."},{"name":"playground","description":"Interactive prompting, comparison and saved conversations."},{"name":"models","description":"The model registry: capabilities, pricing and availability."},{"name":"providers","description":"Configured providers and their live health."},{"name":"routing","description":"Routing policies: candidates, strategy and fallback."},{"name":"knowledge","description":"Knowledge bases, document ingestion and retrieval."},{"name":"agents","description":"Agent definitions, granted tools and run history."},{"name":"workflows","description":"Workflow graphs, validation and execution."},{"name":"evaluations","description":"Test datasets, scoring and regression runs."},{"name":"observability","description":"Request, latency, token and cost aggregates."},{"name":"tenancy","description":"The calling key's organization and project."},{"name":"credentials","description":"API key issuance and revocation."}]}