{"openapi":"3.1.0","info":{"title":"FirstData MCP Apply System","description":"\n    FirstData MCP 申请管理平台\n\n    ## 核心特性\n    - ✅ **独立鉴权** - JWT + 数据库状态管理的混合模式\n    - ✅ **Token 验证 API** - MCP Server 通过 HTTP 接口验证 Token\n    - ✅ **灵活管理** - 支持 Token 续期、撤销操作\n    - ✅ **自动化审批** - 一键签发 Token 并邮件通知\n    ","version":"2.0.0"},"paths":{"/api/admin/auth/login":{"post":{"tags":["admin-auth"],"summary":"Admin Login","description":"管理员登录\n\n验证邮箱和密码，返回 JWT Token","operationId":"admin_login_api_admin_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLogin"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminLoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/auth/me":{"get":{"tags":["admin-auth"],"summary":"Get Current Admin Info","description":"获取当前登录管理员信息","operationId":"get_current_admin_info_api_admin_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/applications":{"get":{"tags":["applications"],"summary":"List Applications","description":"获取申请列表\n\n支持按状态筛选和分页","operationId":"list_applications_api_admin_applications_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(pending|approved|rejected)$"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/applications/{application_id}":{"get":{"tags":["applications"],"summary":"Get Application","description":"获取单个申请详情","operationId":"get_application_api_admin_applications__application_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"application_id","in":"path","required":true,"schema":{"type":"integer","title":"Application Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["applications"],"summary":"Delete Application","description":"删除申请记录","operationId":"delete_application_api_admin_applications__application_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"application_id","in":"path","required":true,"schema":{"type":"integer","title":"Application Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/applications/{application_id}/approve":{"post":{"tags":["applications"],"summary":"Approve Application","description":"审批通过申请\n\n流程：\n1. 验证申请存在且状态为 pending\n2. 调用 TokenService 创建用户和 Token\n3. 更新申请状态\n4. 发送邮件通知","operationId":"approve_application_api_admin_applications__application_id__approve_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"application_id","in":"path","required":true,"schema":{"type":"integer","title":"Application Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/applications/{application_id}/reject":{"post":{"tags":["applications"],"summary":"Reject Application","description":"拒绝申请\n\n流程：\n1. 验证申请存在且状态为 pending\n2. 更新申请状态\n3. 发送邮件通知","operationId":"reject_application_api_admin_applications__application_id__reject_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"application_id","in":"path","required":true,"schema":{"type":"integer","title":"Application Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/RejectRequest"},{"type":"null"}],"title":"Reject Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/tokens":{"get":{"tags":["tokens"],"summary":"List Tokens","description":"获取 Token 列表\n\n支持按邮箱和状态筛选，支持分页","operationId":"list_tokens_api_admin_tokens_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(active|revoked)$"},{"type":"null"}],"title":"Status"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["tokens"],"summary":"Create Token","description":"手动创建 Token\n\n管理员为指定用户手动签发 Token，不校验邮箱重复状态。\n同一邮箱可拥有多个有效 Token。","operationId":"create_token_api_admin_tokens_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/tokens/rate-limit-defaults":{"get":{"tags":["tokens"],"summary":"Get Rate Limit Defaults","description":"返回系统级速率限制默认值（Token 未单独配置时生效）","operationId":"get_rate_limit_defaults_api_admin_tokens_rate_limit_defaults_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitDefaultsResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/admin/tokens/{token_id}":{"get":{"tags":["tokens"],"summary":"Get Token","description":"获取单个 Token 信息","operationId":"get_token_api_admin_tokens__token_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"integer","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["tokens"],"summary":"Update Token","description":"更新 Token 速率限制字段（rps_limit / daily_quota）。\n\n未提供的字段保持不变；显式传 null 表示清空回系统默认。","operationId":"update_token_api_admin_tokens__token_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"integer","title":"Token Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/tokens/{token_id}/renew":{"post":{"tags":["tokens"],"summary":"Renew Token","description":"续期 Token\n\n延长指定 Token 的到期时间，不重新签发。","operationId":"renew_token_api_admin_tokens__token_id__renew_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"integer","title":"Token Id"}},{"name":"extend_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":3650,"minimum":1},{"type":"null"}],"description":"续期天数，默认使用系统配置","title":"Extend Days"},"description":"续期天数，默认使用系统配置"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRenewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/tokens/{token_id}/revoke":{"post":{"tags":["tokens"],"summary":"Revoke Token","description":"撤销 Token","operationId":"revoke_token_api_admin_tokens__token_id__revoke_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"token_id","in":"path","required":true,"schema":{"type":"integer","title":"Token Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/apply":{"post":{"tags":["apply"],"summary":"Submit Application","description":"提交申请\n\n用户提交 MCP API 访问申请","operationId":"submit_application_api_apply_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplicationSubmitResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/token/verify":{"post":{"tags":["token"],"summary":"Verify Token","description":"验证 Token\n\nMCP Server 在收到用户请求时，调用此接口验证 token 的有效性。\n需在请求头中携带 X-API-Key。\n检查 JWT 签名、数据库状态、过期时间、配额。","operationId":"verify_token_api_token_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/trial/health":{"get":{"tags":["免费试用"],"summary":"Health Check","description":"健康检查接口","operationId":"health_check_api_trial_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/trial/session-info":{"get":{"tags":["免费试用"],"summary":"Session Info","description":"获取当前 IP 地址的使用信息","operationId":"session_info_api_trial_session_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/trial/stats":{"get":{"tags":["免费试用"],"summary":"Get Stats","description":"获取所有 IP 地址的统计信息（用于监控）","operationId":"get_stats_api_trial_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/trial/search-keywords":{"post":{"tags":["免费试用"],"summary":"Api Search Keywords","description":"关键词搜索","operationId":"api_search_keywords_api_trial_search_keywords_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchKeywordsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trial/list-datasources":{"post":{"tags":["免费试用"],"summary":"Api List Datasources","description":"列出数据源","operationId":"api_list_datasources_api_trial_list_datasources_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDatasourcesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trial/get-details":{"post":{"tags":["免费试用"],"summary":"Api Get Details","description":"获取数据源详情","operationId":"api_get_details_api_trial_get_details_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDetailsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trial/filter":{"post":{"tags":["免费试用"],"summary":"Api Datasource Filter","description":"筛选数据源","operationId":"api_datasource_filter_api_trial_filter_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trial/search-agent":{"post":{"tags":["免费试用"],"summary":"Api Search Llm Agent","description":"智能搜索 Agent","operationId":"api_search_llm_agent_api_trial_search_agent_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchAgentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trial/get-instructions":{"post":{"tags":["免费试用"],"summary":"Api Get Instructions","description":"获取数据源操作指令","operationId":"api_get_instructions_api_trial_get_instructions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetInstructionsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trial/chat":{"post":{"tags":["免费试用"],"summary":"Api Trial Chat","description":"聊天式免费试用，由大模型自主调用 MCP 工具","operationId":"api_trial_chat_api_trial_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/skill":{"get":{"tags":["agent"],"summary":"Get Agent Skill","description":"返回 Agent Skill 安装与接入信息，供程序化发现使用。","operationId":"get_agent_skill_api_agent_skill_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agent/register":{"post":{"tags":["agent"],"summary":"Register Agent","description":"Agent 注册\n\n提交 agent_id 获取预生成 token 和混淆数学挑战题。\ntoken 在通过验证前处于 inactive 状态。","operationId":"register_agent_api_agent_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentRegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/verify":{"post":{"tags":["agent"],"summary":"Verify Agent","description":"Agent 验证\n\n提交验证码和数学题答案。答对则激活 token。","operationId":"verify_agent_api_agent_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVerifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentVerifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health Check","description":"健康检查","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api":{"get":{"summary":"Api Root","description":"API 根路径","operationId":"api_root_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/admin/{full_path}":{"get":{"summary":"Serve Admin Spa","description":"管理后台 SPA 路由","operationId":"serve_admin_spa_admin__full_path__get","parameters":[{"name":"full_path","in":"path","required":true,"schema":{"type":"string","title":"Full Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/":{"get":{"summary":"Serve User Spa","description":"用户申请页面","operationId":"serve_user_spa__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AdminLogin":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"password":{"type":"string","minLength":6,"title":"Password"}},"type":"object","required":["email","password"],"title":"AdminLogin","description":"管理员登录请求"},"AdminLoginResponse":{"properties":{"access_token":{"type":"string","title":"Access Token"},"token_type":{"type":"string","title":"Token Type","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In"}},"type":"object","required":["access_token","expires_in"],"title":"AdminLoginResponse","description":"管理员登录响应"},"AdminResponse":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name"},"role":{"type":"string","title":"Role"},"is_active":{"type":"boolean","title":"Is Active"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"login_count":{"type":"integer","title":"Login Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","full_name","role","is_active","last_login_at","login_count","created_at"],"title":"AdminResponse","description":"管理员响应"},"AgentRegisterData":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"access_token":{"type":"string","title":"Access Token"},"verification":{"$ref":"#/components/schemas/VerificationInfo"}},"type":"object","required":["agent_id","access_token","verification"],"title":"AgentRegisterData","description":"注册成功返回数据"},"AgentRegisterRequest":{"properties":{"agent_id":{"type":"string","maxLength":100,"minLength":1,"title":"Agent Id","description":"Agent 全局唯一标识"},"contact_email":{"type":"string","maxLength":255,"title":"Contact Email","description":"联系邮箱（可选）","default":""},"description":{"type":"string","maxLength":500,"title":"Description","description":"用途描述（可选）","default":""}},"type":"object","required":["agent_id"],"title":"AgentRegisterRequest","description":"Agent 注册请求"},"AgentRegisterResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"data":{"anyOf":[{"$ref":"#/components/schemas/AgentRegisterData"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["success"],"title":"AgentRegisterResponse","description":"Agent 注册响应"},"AgentVerifyRequest":{"properties":{"verification_code":{"type":"string","maxLength":100,"title":"Verification Code"},"answer":{"type":"string","maxLength":50,"title":"Answer","description":"数值答案"}},"type":"object","required":["verification_code","answer"],"title":"AgentVerifyRequest","description":"Agent 验证请求"},"AgentVerifyResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"mcp_server_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mcp Server Url"},"hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hint"}},"type":"object","required":["success","message"],"title":"AgentVerifyResponse","description":"Agent 验证响应"},"ApplicationCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":2,"title":"Name","description":"姓名"},"email":{"type":"string","format":"email","title":"Email","description":"邮箱"},"organization":{"type":"string","maxLength":200,"title":"Organization","description":"组织/公司"},"position":{"type":"string","maxLength":100,"title":"Position","description":"职位"},"use_case":{"type":"string","maxLength":2000,"title":"Use Case","description":"使用场景"},"team_size":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Team Size","description":"团队规模"},"description":{"type":"string","maxLength":2000,"minLength":1,"title":"Description","description":"申请说明"},"github":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Github","description":"蜜罐字段，正常用户不应填写"}},"type":"object","required":["name","email","organization","position","use_case","description"],"title":"ApplicationCreate","description":"创建申请的请求"},"ApplicationListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"},"items":{"items":{"$ref":"#/components/schemas/ApplicationResponse"},"type":"array","title":"Items"}},"type":"object","required":["total","page","limit","items"],"title":"ApplicationListResponse","description":"申请列表响应"},"ApplicationResponse":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email"},"organization":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Organization"},"position":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Position"},"use_case":{"type":"string","title":"Use Case"},"team_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Team Size"},"description":{"type":"string","title":"Description"},"status":{"type":"string","title":"Status"},"reviewed_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reviewed By"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"},"rejection_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rejection Reason"},"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","email","organization","position","use_case","team_size","description","status","reviewed_by","reviewed_at","rejection_reason","created_at","updated_at"],"title":"ApplicationResponse","description":"申请响应"},"ApplicationSubmitResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"message":{"type":"string","title":"Message"},"application_id":{"type":"integer","title":"Application Id"}},"type":"object","required":["success","message","application_id"],"title":"ApplicationSubmitResponse","description":"提交申请响应"},"ApproveRequest":{"properties":{"token_expires_days":{"type":"integer","maximum":3650.0,"minimum":1.0,"title":"Token Expires Days","description":"Token 有效期（天）","default":90},"rps_limit":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Rps Limit","description":"每秒请求数限制；留空走系统默认"},"daily_quota":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Daily Quota","description":"每日请求配额；留空走系统默认"}},"type":"object","title":"ApproveRequest","description":"审批通过请求"},"FilterRequest":{"properties":{"geographic_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geographic Scope","description":"地理范围"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain","description":"领域"},"has_api":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Api","description":"是否有API"},"update_frequency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Update Frequency","description":"更新频率"},"authority_level":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authority Level","description":"权威级别"}},"type":"object","title":"FilterRequest"},"GetDetailsRequest":{"properties":{"source_ids":{"items":{"type":"string"},"type":"array","title":"Source Ids","description":"数据源ID列表"},"fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Fields","description":"需要的字段"}},"type":"object","required":["source_ids"],"title":"GetDetailsRequest"},"GetInstructionsRequest":{"properties":{"source_id":{"type":"string","title":"Source Id","description":"数据源ID"},"operation":{"type":"string","title":"Operation","description":"操作描述"},"top_k":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Top K","description":"返回结果数量","default":3}},"type":"object","required":["source_id","operation"],"title":"GetInstructionsRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ListDatasourcesRequest":{"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"国家代码"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain","description":"领域"}},"type":"object","title":"ListDatasourcesRequest"},"RateLimitDefaultsResponse":{"properties":{"rps_limit":{"type":"integer","title":"Rps Limit"},"daily_quota":{"type":"integer","title":"Daily Quota"}},"type":"object","required":["rps_limit","daily_quota"],"title":"RateLimitDefaultsResponse","description":"系统级速率限制默认值（当 Token 的 rps_limit / daily_quota 为 NULL 时生效的兜底值）"},"RejectRequest":{"properties":{"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"拒绝原因（可选）"},"send_email":{"type":"boolean","title":"Send Email","description":"是否向用户发送拒绝通知邮件","default":false}},"type":"object","title":"RejectRequest","description":"拒绝申请请求"},"SearchAgentRequest":{"properties":{"query":{"type":"string","title":"Query","description":"查询文本"},"max_results":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Max Results","description":"返回结果数量","default":5}},"type":"object","required":["query"],"title":"SearchAgentRequest"},"SearchKeywordsRequest":{"properties":{"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","description":"关键词列表"},"search_fields":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Search Fields","description":"搜索字段"},"limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Limit","description":"返回结果数量","default":20}},"type":"object","required":["keywords"],"title":"SearchKeywordsRequest"},"TokenCreateRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"用户邮箱"},"username":{"type":"string","maxLength":100,"minLength":1,"title":"Username","description":"用户名"},"expire_days":{"type":"integer","maximum":3650.0,"minimum":1.0,"title":"Expire Days","description":"有效期（天）","default":90},"send_email":{"type":"boolean","title":"Send Email","description":"是否发送邮件通知用户","default":false},"rps_limit":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Rps Limit","description":"每秒请求数限制；留空走系统默认"},"daily_quota":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Daily Quota","description":"每日请求配额；留空走系统默认"}},"type":"object","required":["email","username"],"title":"TokenCreateRequest","description":"管理员手动创建 Token 请求"},"TokenListResponse":{"properties":{"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"limit":{"type":"integer","title":"Limit"},"items":{"items":{"$ref":"#/components/schemas/TokenResponse"},"type":"array","title":"Items"}},"type":"object","required":["total","page","limit","items"],"title":"TokenListResponse","description":"Token 列表响应"},"TokenRenewResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"new_expires_at":{"type":"string","title":"New Expires At"}},"type":"object","required":["success","new_expires_at"],"title":"TokenRenewResponse","description":"Token 续期响应"},"TokenResponse":{"properties":{"id":{"type":"integer","title":"Id"},"email":{"type":"string","title":"Email"},"username":{"type":"string","title":"Username"},"application_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Application Id"},"jti":{"type":"string","title":"Jti"},"status":{"type":"string","title":"Status"},"source":{"type":"string","title":"Source","default":"human"},"expires_at":{"type":"string","format":"date-time","title":"Expires At"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"rps_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rps Limit"},"daily_quota":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Daily Quota"}},"type":"object","required":["id","email","username","jti","status","expires_at","created_at"],"title":"TokenResponse","description":"Token 响应（管理员视图）"},"TokenUpdateRequest":{"properties":{"rps_limit":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Rps Limit"},"daily_quota":{"anyOf":[{"type":"integer","maximum":100000.0,"minimum":1.0},{"type":"null"}],"title":"Daily Quota"}},"type":"object","title":"TokenUpdateRequest","description":"更新 Token 速率限制（仅管理员）。未提供的字段不改动；显式传 null 则清空回系统默认。"},"TokenVerifyRequest":{"properties":{"token":{"type":"string","maxLength":4096,"title":"Token"}},"type":"object","required":["token"],"title":"TokenVerifyRequest","description":"Token 验证请求（MCP Server 调用）"},"TokenVerifyResponse":{"properties":{"valid":{"type":"boolean","title":"Valid"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"quota_allowed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Quota Allowed"},"remaining_daily":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Remaining Daily"}},"type":"object","required":["valid"],"title":"TokenVerifyResponse","description":"Token 验证响应"},"TrialChatMessage":{"properties":{"role":{"type":"string","title":"Role","description":"消息角色，仅支持 user 或 assistant"},"content":{"type":"string","title":"Content","description":"消息内容"}},"type":"object","required":["role","content"],"title":"TrialChatMessage"},"TrialChatRequest":{"properties":{"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message","description":"当前用户消息"},"history":{"items":{"$ref":"#/components/schemas/TrialChatMessage"},"type":"array","title":"History","description":"历史消息"},"language":{"type":"string","title":"Language","description":"对话语言: zh / en","default":"zh"}},"type":"object","required":["message"],"title":"TrialChatRequest"},"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"},"VerificationInfo":{"properties":{"verification_code":{"type":"string","title":"Verification Code"},"challenge_text":{"type":"string","title":"Challenge Text"},"expires_at":{"type":"string","title":"Expires At"},"instructions":{"type":"string","title":"Instructions","default":"Solve the math problem described in the challenge text and submit the numerical answer."}},"type":"object","required":["verification_code","challenge_text","expires_at"],"title":"VerificationInfo","description":"验证挑战信息"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}