{"openapi":"3.1.0","info":{"title":"xCode proxy gateway","version":"0.1.0"},"paths":{"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ready":{"get":{"summary":"Ready","operationId":"ready_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/drain":{"get":{"summary":"Drain","operationId":"drain_internal_drain_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/management/limits":{"get":{"tags":["management"],"summary":"Get Limits","description":"Get user's personal and business-aware billing state by ID.","operationId":"get_limits_management_limits_get","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"User ID (UUID)","title":"Id"},"description":"User ID (UUID)"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["management"],"summary":"Create Or Update Limits","description":"Create user or upgrade their personal subscription.","operationId":"create_or_update_limits_management_limits_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitsCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitsCreateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/prices":{"get":{"tags":["management"],"summary":"Get Model Prices","description":"Get prices for all configured models.","operationId":"get_model_prices_management_prices_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelPricesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/balance":{"get":{"tags":["management"],"summary":"Get Group Balances","description":"Get per-model-group personal balances for a user.","operationId":"get_group_balances_management_balance_get","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"User ID (UUID)","title":"Id"},"description":"User ID (UUID)"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["management"],"summary":"Update Group Balance","description":"Add or subtract from a user's personal prepaid balance.","operationId":"update_group_balance_management_balance_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupBalanceUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/business/limits":{"get":{"tags":["management"],"summary":"Get Business Limits","description":"Get organization billing state with member-level breakdown.","operationId":"get_business_limits_management_business_limits_get","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"Organization ID (UUID)","title":"Id"},"description":"Organization ID (UUID)"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessLimitsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["management"],"summary":"Create Or Update Business Limits","description":"Create or update organization billing state.","operationId":"create_or_update_business_limits_management_business_limits_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessLimitsUpsertRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessLimitsUpsertResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/business/balance":{"get":{"tags":["management"],"summary":"Get Business Balance","description":"Get organization-level prepaid balances and seat counters.","operationId":"get_business_balance_management_business_balance_get","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"Organization ID (UUID)","title":"Id"},"description":"Organization ID (UUID)"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["management"],"summary":"Update Business Balance","description":"Add or subtract organization-level prepaid balance.","operationId":"update_business_balance_management_business_balance_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessBalanceUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessBalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/business/member-state":{"post":{"tags":["management"],"summary":"Sync Business Member State","description":"Sync member assignment, removal, seat blocking, and tariff changes.","operationId":"sync_business_member_state_management_business_member_state_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessMemberStateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessMemberStateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/tiers":{"get":{"tags":["management"],"summary":"Get Tier Limits","description":"Get limits for all configured tiers.","operationId":"get_tier_limits_management_tiers_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TiersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/usage-history":{"get":{"tags":["analytics"],"summary":"Get Usage History","description":"Get request history filtered by user_id and/or organization_id.","operationId":"get_usage_history_management_usage_history_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User UUID","title":"User Id"},"description":"User UUID"},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Organization UUID","title":"Organization Id"},"description":"Organization UUID"},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Start datetime filter (ISO 8601)","title":"From Date"},"description":"Start datetime filter (ISO 8601)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"End datetime filter (ISO 8601)","title":"To Date"},"description":"End datetime filter (ISO 8601)"},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by model name","title":"Model"},"description":"Filter by model name"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by outcome: 'success' or 'error'","title":"Status"},"description":"Filter by outcome: 'success' or 'error'"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based)","default":1,"title":"Page"},"description":"Page number (1-based)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Items per page (max 200)","default":50,"title":"Page Size"},"description":"Items per page (max 200)"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/usage-summary":{"get":{"tags":["analytics"],"summary":"Get Usage Summary","description":"Get aggregate request counters for one user.","operationId":"get_usage_summary_management_usage_summary_get","parameters":[{"name":"user_id","in":"query","required":true,"schema":{"type":"string","description":"User UUID","title":"User Id"},"description":"User UUID"},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Start datetime filter (ISO 8601)","title":"From Date"},"description":"Start datetime filter (ISO 8601)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"End datetime filter (ISO 8601)","title":"To Date"},"description":"End datetime filter (ISO 8601)"},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by model name","title":"Model"},"description":"Filter by model name"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by outcome: 'success' or 'error'","title":"Status"},"description":"Filter by outcome: 'success' or 'error'"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSummaryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/management/business/usage-history":{"get":{"tags":["analytics"],"summary":"Get Business Usage History","description":"Get organization request history plus employee-level usage summary.","operationId":"get_business_usage_history_management_business_usage_history_get","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string","description":"Organization UUID","title":"Id"},"description":"Organization UUID"},{"name":"from_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Start datetime filter (ISO 8601)","title":"From Date"},"description":"Start datetime filter (ISO 8601)"},{"name":"to_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"End datetime filter (ISO 8601)","title":"To Date"},"description":"End datetime filter (ISO 8601)"},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by model name","title":"Model"},"description":"Filter by model name"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by outcome: 'success' or 'error'","title":"Status"},"description":"Filter by outcome: 'success' or 'error'"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number (1-based)","default":1,"title":"Page"},"description":"Page number (1-based)"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Items per page (max 200)","default":50,"title":"Page Size"},"description":"Items per page (max 200)"},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessUsageHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/metrics":{"get":{"summary":"Metrics","operationId":"metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/models":{"get":{"summary":"V1 Models","operationId":"v1_models_v1_models_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/status":{"get":{"summary":"Status","description":"Health check endpoint","operationId":"status_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/docs/{path}":{"post":{"summary":"Docs Search","description":"Proxy endpoint that forwards requests to the docs search service.","operationId":"docs_search_api_docs__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Docs Search","description":"Proxy endpoint that forwards requests to the docs search service.","operationId":"docs_search_api_docs__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Docs Search","description":"Proxy endpoint that forwards requests to the docs search service.","operationId":"docs_search_api_docs__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Docs Search","description":"Proxy endpoint that forwards requests to the docs search service.","operationId":"docs_search_api_docs__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Docs Search","description":"Proxy endpoint that forwards requests to the docs search service.","operationId":"docs_search_api_docs__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/notifications":{"post":{"summary":"Send Notification","description":"VSCode and JB plugins poll this endpoint once on startup.\nInput:\n    headers: {Authorization: `Bearer ${JWE_accessToken}`}, // Token used to access models\n    body: JSON.stringify({\n        os: Telemetry.os,\n        extensionVersion: Telemetry.ideInfo?.extensionVersion,\n        ideName: Telemetry.ideInfo?.name,\n        ideType: Telemetry.ideInfo?.ideType,\n        userId: Telemetry.uniqueId, // can match to telemetry events\n    }),\nOutput:\n    status: 200\n    body: {messages: [\n            {\"level\": \"info\" | \"error\" | \"warning\", \"text\": \"Text!\", \"button\": {\"text\": \"Click\", \"url\": \"https://example.com\"}},\n    ]}","operationId":"send_notification_notifications_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/search":{"post":{"summary":"Snippet Search","description":"Proxy endpoint that forwards the incoming POST search request – including the\noriginal request body – to the configured snippet-search service.\n\nWe do **not** try to interpret the body; we simply forward it using the same\nHTTP method (POST) and content-type so that the upstream service receives\nexactly what the client sent. When configured, attach the Authorization\nheader required by the upstream.","operationId":"snippet_search_api_search_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/web_search":{"post":{"summary":"Web Search","description":"Proxy endpoint that forwards the incoming POST web search request – including the\noriginal request body – to the configured web search service.","operationId":"web_search_web_search_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/audio/transcriptions":{"post":{"summary":"Audio Transcriptions","operationId":"audio_transcriptions_v1_audio_transcriptions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/audio/translations":{"post":{"summary":"Audio Translations","operationId":"audio_translations_v1_audio_translations_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ftc":{"post":{"summary":"Get Free Trial Count","description":"Return the current free-trial usage count for the authenticated user.\n\nExpects an Authorization header with a GitHub token. We validate the token,\nhash the GitHub user id to derive the internal user key, and return the\ncurrent request count stored in the SQLite database.","operationId":"get_free_trial_count_ftc_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/chat/completions":{"post":{"summary":"V1 Chat Completions","description":"V1 chat completions endpoint with dependency-based lifecycle management.\nJWE token authentication. Routes legacy/utility tokens to proxy_request.\n\nAll cleanup (server slot release, billing refund, monitoring, telemetry)\nis guaranteed by the _bind_v1_lifecycle dependency, which runs its\nfinally block after the full response (including streaming) is consumed.","operationId":"v1_chat_completions_v1_chat_completions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}},"401":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}},"403":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}},"404":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}},"429":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}},"500":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}},"502":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}},"503":{"description":"OpenAI-compatible gateway error envelope","content":{"application/json":{"example":{"error":{"message":"You've reached model call limit and no paid requests for model group available","type":"permission_error","code":"billing_limit_exhausted","source":"gateway","request_id":"3eaa5db2-4d31-47ec-a59b-e647d3c95c4c","status_code":403}}}}}}}},"/{path}":{"post":{"summary":"Proxy Request","operationId":"proxy_request__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Proxy Request","operationId":"proxy_request__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Proxy Request","operationId":"proxy_request__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Proxy Request","operationId":"proxy_request__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Proxy Request","operationId":"proxy_request__path__post","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"BusinessBalanceResponse":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"seats":{"$ref":"#/components/schemas/BusinessSeatsInfo"},"group_balances":{"additionalProperties":{"$ref":"#/components/schemas/GroupBalanceInfo"},"type":"object","title":"Group Balances"}},"type":"object","required":["organization_id","seats","group_balances"],"title":"BusinessBalanceResponse","description":"Response model for GET/POST /management/business/balance."},"BusinessBalanceUpdateRequest":{"properties":{"id":{"type":"string","title":"Id"},"model_group":{"type":"string","title":"Model Group"},"delta":{"type":"number","title":"Delta"}},"type":"object","required":["id","model_group","delta"],"title":"BusinessBalanceUpdateRequest","description":"Request model for POST /management/business/balance."},"BusinessLimitInfo":{"properties":{"model_group":{"type":"string","title":"Model Group"},"max_calls":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Calls"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}},"type":"object","required":["model_group","max_calls","period"],"title":"BusinessLimitInfo","description":"Business limit summary for a model group."},"BusinessLimitsResponse":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"tariff_id":{"type":"string","title":"Tariff Id"},"status":{"type":"string","title":"Status"},"blocked":{"type":"boolean","title":"Blocked"},"renew_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Renew At"},"seats":{"$ref":"#/components/schemas/BusinessSeatsInfo"},"group_balances":{"additionalProperties":{"$ref":"#/components/schemas/GroupBalanceInfo"},"type":"object","title":"Group Balances"},"limits":{"items":{"$ref":"#/components/schemas/BusinessLimitInfo"},"type":"array","title":"Limits"},"usage":{"items":{"$ref":"#/components/schemas/BusinessUsageInfo"},"type":"array","title":"Usage"},"members":{"items":{"$ref":"#/components/schemas/BusinessMemberInfo"},"type":"array","title":"Members"}},"type":"object","required":["organization_id","tariff_id","status","blocked","renew_at","seats","group_balances","limits","usage","members"],"title":"BusinessLimitsResponse","description":"Response model for GET /management/business/limits."},"BusinessLimitsUpsertRequest":{"properties":{"id":{"type":"string","title":"Id"},"tariff_id":{"type":"string","title":"Tariff Id"},"seats_purchased":{"type":"integer","minimum":0.0,"title":"Seats Purchased"},"renew_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Renew At"},"status":{"type":"string","title":"Status","default":"active"},"blocked":{"type":"boolean","title":"Blocked","default":false}},"type":"object","required":["id","tariff_id","seats_purchased"],"title":"BusinessLimitsUpsertRequest","description":"Request model for POST /management/business/limits."},"BusinessLimitsUpsertResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"action":{"type":"string","title":"Action"},"business":{"anyOf":[{"$ref":"#/components/schemas/BusinessLimitsResponse"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","action"],"title":"BusinessLimitsUpsertResponse","description":"Response model for POST /management/business/limits."},"BusinessMemberInfo":{"properties":{"user_id":{"type":"string","title":"User Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"seat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seat Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"business_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Role"},"business_tariff_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Tariff Id"},"organization_member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Member Id"},"limits":{"items":{"$ref":"#/components/schemas/BusinessLimitInfo"},"type":"array","title":"Limits"},"usage":{"items":{"$ref":"#/components/schemas/BusinessUsageInfo"},"type":"array","title":"Usage"}},"type":"object","required":["user_id","email","seat_id","status","business_role","business_tariff_id","organization_member_id","limits","usage"],"title":"BusinessMemberInfo","description":"Business member state with per-seat limits and usage."},"BusinessMemberStateRequest":{"properties":{"user_id":{"type":"string","title":"User Id"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"organization_member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Member Id"},"business_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Role"},"business_tariff_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Tariff Id"},"seat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seat Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","required":["user_id"],"title":"BusinessMemberStateRequest","description":"Authoritative member state sync request."},"BusinessMemberStateResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"action":{"type":"string","title":"Action"},"member":{"anyOf":[{"$ref":"#/components/schemas/BusinessMemberInfo"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","action"],"title":"BusinessMemberStateResponse","description":"Response model for POST /management/business/member-state."},"BusinessSeatsInfo":{"properties":{"purchased":{"type":"integer","title":"Purchased"},"assigned":{"type":"integer","title":"Assigned"},"available":{"type":"integer","title":"Available"}},"type":"object","required":["purchased","assigned","available"],"title":"BusinessSeatsInfo","description":"Seat counters for the organization."},"BusinessUsageHistoryResponse":{"properties":{"organization_id":{"type":"string","title":"Organization Id"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/RequestHistoryItem"},"type":"array","title":"Items"},"members":{"items":{"$ref":"#/components/schemas/BusinessUsageMemberSummary"},"type":"array","title":"Members"}},"type":"object","required":["organization_id","total","page","page_size","items","members"],"title":"BusinessUsageHistoryResponse"},"BusinessUsageInfo":{"properties":{"model_group":{"type":"string","title":"Model Group"},"current_calls":{"type":"number","title":"Current Calls"}},"type":"object","required":["model_group","current_calls"],"title":"BusinessUsageInfo","description":"Business usage summary for a model group."},"BusinessUsageMemberSummary":{"properties":{"user_id":{"type":"string","title":"User Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"seat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seat Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"business_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Role"},"business_tariff_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Tariff Id"},"request_count":{"type":"integer","title":"Request Count"},"success_count":{"type":"integer","title":"Success Count"},"error_count":{"type":"integer","title":"Error Count"},"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"completion_tokens":{"type":"integer","title":"Completion Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"}},"type":"object","required":["user_id","email","seat_id","status","business_role","business_tariff_id","request_count","success_count","error_count","prompt_tokens","completion_tokens","total_tokens"],"title":"BusinessUsageMemberSummary"},"GroupBalanceInfo":{"properties":{"current_calls":{"type":"number","title":"Current Calls"},"max_calls":{"type":"number","title":"Max Calls"}},"type":"object","required":["current_calls","max_calls"],"title":"GroupBalanceInfo","description":"Per-model-group prepaid balance state."},"GroupBalanceResponse":{"properties":{"user_id":{"type":"string","title":"User Id"},"group_balances":{"additionalProperties":{"$ref":"#/components/schemas/GroupBalanceInfo"},"type":"object","title":"Group Balances"}},"type":"object","required":["user_id","group_balances"],"title":"GroupBalanceResponse","description":"Response model for POST/GET /management/balance."},"GroupBalanceUpdateRequest":{"properties":{"id":{"type":"string","title":"Id"},"model_group":{"type":"string","title":"Model Group"},"delta":{"type":"number","title":"Delta"}},"type":"object","required":["id","model_group","delta"],"title":"GroupBalanceUpdateRequest","description":"Request model for POST /management/balance."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LimitsCreateRequest":{"properties":{"id":{"type":"string","title":"Id"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier","default":"anonymous"},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration","default":30},"reset_paid":{"type":"boolean","title":"Reset Paid","default":false}},"type":"object","required":["id"],"title":"LimitsCreateRequest","description":"Request model for POST /management/limits."},"LimitsCreateResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"action":{"type":"string","title":"Action"},"user":{"anyOf":[{"$ref":"#/components/schemas/LimitsResponse"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","action"],"title":"LimitsCreateResponse","description":"Response model for POST /management/limits."},"LimitsResponse":{"properties":{"id":{"type":"string","title":"Id"},"blocked":{"type":"boolean","title":"Blocked"},"balance":{"type":"number","title":"Balance"},"group_balances":{"additionalProperties":{"$ref":"#/components/schemas/GroupBalanceInfo"},"type":"object","title":"Group Balances"},"base_tier":{"type":"string","title":"Base Tier"},"base_sub_start":{"type":"string","format":"date-time","title":"Base Sub Start"},"base_sub_end":{"type":"string","format":"date-time","title":"Base Sub End"},"paid_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paid Tier"},"paid_sub_start":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid Sub Start"},"paid_sub_end":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Paid Sub End"},"active_subscription":{"type":"string","title":"Active Subscription"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"organization_member_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Member Id"},"business_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Role"},"business_tariff_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Tariff Id"},"seat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seat Id"},"business_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Status"},"business_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Email"},"base_usage":{"items":{"$ref":"#/components/schemas/ModelGroupUsageInfo"},"type":"array","title":"Base Usage"},"paid_usage":{"anyOf":[{"items":{"$ref":"#/components/schemas/ModelGroupUsageInfo"},"type":"array"},{"type":"null"}],"title":"Paid Usage"},"business_usage":{"anyOf":[{"items":{"$ref":"#/components/schemas/ModelGroupUsageInfo"},"type":"array"},{"type":"null"}],"title":"Business Usage"}},"type":"object","required":["id","blocked","balance","group_balances","base_tier","base_sub_start","base_sub_end","paid_tier","paid_sub_start","paid_sub_end","active_subscription","organization_id","organization_member_id","business_role","business_tariff_id","seat_id","business_status","business_email","base_usage","paid_usage","business_usage"],"title":"LimitsResponse","description":"Response model for GET /management/limits."},"ModelGroupUsageInfo":{"properties":{"model_group":{"type":"string","title":"Model Group"},"current_calls":{"type":"number","title":"Current Calls"},"max_calls":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Calls"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"},"last_refresh":{"type":"string","format":"date-time","title":"Last Refresh"},"next_refresh":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Refresh"}},"type":"object","required":["model_group","current_calls","max_calls","period","last_refresh","next_refresh"],"title":"ModelGroupUsageInfo","description":"Model group usage information."},"ModelPriceInfo":{"properties":{"model":{"type":"string","title":"Model"},"model_group":{"type":"string","title":"Model Group"},"provider":{"type":"string","title":"Provider"},"enabled":{"type":"boolean","title":"Enabled"},"price":{"type":"number","title":"Price"},"pricing_mode":{"type":"string","title":"Pricing Mode","default":"fixed"},"cost_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cost Source"},"self_hosted_token_multipliers":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Self Hosted Token Multipliers"}},"type":"object","required":["model","model_group","provider","enabled","price"],"title":"ModelPriceInfo","description":"Model price information."},"ModelPricesResponse":{"properties":{"models":{"items":{"$ref":"#/components/schemas/ModelPriceInfo"},"type":"array","title":"Models"}},"type":"object","required":["models"],"title":"ModelPricesResponse","description":"Response model for GET /management/prices."},"RequestHistoryItem":{"properties":{"id":{"type":"integer","title":"Id"},"request_id":{"type":"string","title":"Request Id"},"user_id":{"type":"string","title":"User Id"},"organization_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization Id"},"model":{"type":"string","title":"Model"},"model_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Group"},"funded_from":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Funded From"},"charged_amount":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Charged Amount"},"started_at":{"type":"string","format":"date-time","title":"Started At"},"completed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Completed At"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"stream":{"type":"boolean","title":"Stream"},"status":{"type":"string","title":"Status"},"http_status_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Http Status Code"},"error_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Type"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"finish_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finish Reason"},"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Tokens"},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completion Tokens"},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["id","request_id","user_id","organization_id","model","model_group","funded_from","charged_amount","started_at","completed_at","duration_ms","stream","status","http_status_code","error_type","error_message","finish_reason","prompt_tokens","completion_tokens","total_tokens","metadata"],"title":"RequestHistoryItem"},"TierInfo":{"properties":{"name":{"type":"string","title":"Name"},"limits":{"items":{"$ref":"#/components/schemas/TierLimitInfo"},"type":"array","title":"Limits"}},"type":"object","required":["name","limits"],"title":"TierInfo","description":"Tier information with its limits."},"TierLimitInfo":{"properties":{"model_group":{"type":"string","title":"Model Group"},"call_limit":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Call Limit"},"period":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Period"}},"type":"object","required":["model_group","call_limit","period"],"title":"TierLimitInfo","description":"Tier limit information for a model group."},"TiersResponse":{"properties":{"tiers":{"items":{"$ref":"#/components/schemas/TierInfo"},"type":"array","title":"Tiers"}},"type":"object","required":["tiers"],"title":"TiersResponse","description":"Response model for GET /management/tiers."},"UsageHistoryResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"},"items":{"items":{"$ref":"#/components/schemas/RequestHistoryItem"},"type":"array","title":"Items"}},"type":"object","required":["total","page","page_size","items"],"title":"UsageHistoryResponse"},"UsageSummaryResponse":{"properties":{"user_id":{"type":"string","title":"User Id"},"request_count":{"type":"integer","title":"Request Count"},"success_count":{"type":"integer","title":"Success Count"},"error_count":{"type":"integer","title":"Error Count"},"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"completion_tokens":{"type":"integer","title":"Completion Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"}},"type":"object","required":["user_id","request_count","success_count","error_count","prompt_tokens","completion_tokens","total_tokens"],"title":"UsageSummaryResponse"},"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"}}}}