{"openapi":"3.1.0","info":{"title":"Captcha Recognition API","description":"ddddocr 验证码识别服务：字符型 OCR 与滑块缺口定位，多账号 + API Key + 点数钱包 + 并发限额。","version":"2.0.0"},"paths":{"/api/auth/login":{"post":{"tags":["auth"],"summary":"Login","operationId":"login_api_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","operationId":"logout_api_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/me":{"get":{"tags":["auth"],"summary":"Me","operationId":"me_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/auth/password":{"post":{"tags":["auth"],"summary":"Change Password","operationId":"change_password_api_auth_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallet":{"get":{"tags":["wallet"],"summary":"Get Wallet","operationId":"get_wallet_api_wallet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wallet/transactions":{"get":{"tags":["wallet"],"summary":"Transactions","operationId":"transactions_api_wallet_transactions_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/wallet/checkin":{"post":{"tags":["wallet"],"summary":"Checkin","operationId":"checkin_api_wallet_checkin_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/wallet/redeem":{"post":{"tags":["wallet"],"summary":"Redeem","operationId":"redeem_api_wallet_redeem_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/wallet":{"get":{"tags":["wallet"],"summary":"V1 Wallet","operationId":"v1_wallet_v1_wallet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/quota":{"get":{"tags":["wallet"],"summary":"V1 Quota","description":"兼容旧接口：语义已改为点数余额。","operationId":"v1_quota_v1_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/keys":{"get":{"tags":["keys"],"summary":"List Keys","operationId":"list_keys_api_keys_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["keys"],"summary":"Create Key","operationId":"create_key_api_keys_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/keys/{key_id}":{"patch":{"tags":["keys"],"summary":"Update Key","operationId":"update_key_api_keys__key_id__patch","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["keys"],"summary":"Delete Key","operationId":"delete_key_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/keys/{key_id}/revoke":{"post":{"tags":["keys"],"summary":"Revoke Key","operationId":"revoke_key_api_keys__key_id__revoke_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/usage/summary":{"get":{"tags":["usage"],"summary":"Summary","operationId":"summary_api_usage_summary_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/usage/daily":{"get":{"tags":["usage"],"summary":"Daily","operationId":"daily_api_usage_daily_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/usage/by-key":{"get":{"tags":["usage"],"summary":"By Key","operationId":"by_key_api_usage_by_key_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/usage/recent":{"get":{"tags":["usage"],"summary":"Recent","operationId":"recent_api_usage_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users":{"get":{"tags":["admin"],"summary":"List Users","operationId":"list_users_api_admin_users_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["admin"],"summary":"Create User","operationId":"create_user_api_admin_users_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users/{user_id}":{"patch":{"tags":["admin"],"summary":"Update User","operationId":"update_user_api_admin_users__user_id__patch","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/users/{user_id}/points":{"post":{"tags":["admin"],"summary":"Adjust Points","operationId":"adjust_points_api_admin_users__user_id__points_post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsAdjust"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/keys":{"get":{"tags":["admin"],"summary":"List All Keys","operationId":"list_all_keys_api_admin_keys_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/keys/{key_id}":{"patch":{"tags":["admin"],"summary":"Admin Update Key","operationId":"admin_update_key_api_admin_keys__key_id__patch","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminKeyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/checkin-config":{"get":{"tags":["admin"],"summary":"Get Checkin Config","operationId":"get_checkin_config_api_admin_checkin_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["admin"],"summary":"Put Checkin Config","operationId":"put_checkin_config_api_admin_checkin_config_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckinConfig"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/concurrency-config":{"get":{"tags":["admin"],"summary":"Get Concurrency Config","operationId":"get_concurrency_config_api_admin_concurrency_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["admin"],"summary":"Put Concurrency Config","operationId":"put_concurrency_config_api_admin_concurrency_config_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConcurrencyConfig"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/redeem-codes/batches":{"get":{"tags":["admin"],"summary":"List Batches","operationId":"list_batches_api_admin_redeem_codes_batches_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["admin"],"summary":"Create Batch","operationId":"create_batch_api_admin_redeem_codes_batches_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/redeem-codes/batches/{batch_id}":{"get":{"tags":["admin"],"summary":"Batch Detail","operationId":"batch_detail_api_admin_redeem_codes_batches__batch_id__get","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"integer","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/redeem-codes/batches/{batch_id}/revoke":{"post":{"tags":["admin"],"summary":"Revoke Batch","operationId":"revoke_batch_api_admin_redeem_codes_batches__batch_id__revoke_post","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"integer","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/redeem-codes/{code_id}/revoke":{"post":{"tags":["admin"],"summary":"Revoke Code","operationId":"revoke_code_api_admin_redeem_codes__code_id__revoke_post","parameters":[{"name":"code_id","in":"path","required":true,"schema":{"type":"integer","title":"Code Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/providers":{"get":{"tags":["admin"],"summary":"List Providers","operationId":"list_providers_api_admin_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["admin"],"summary":"Create Provider","operationId":"create_provider_api_admin_providers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/providers/{provider_id}":{"patch":{"tags":["admin"],"summary":"Update Provider","operationId":"update_provider_api_admin_providers__provider_id__patch","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","title":"Provider Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["admin"],"summary":"Delete Provider","operationId":"delete_provider_api_admin_providers__provider_id__delete","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/providers/{provider_id}/reset-breaker":{"post":{"tags":["admin"],"summary":"Reset Breaker","operationId":"reset_breaker_api_admin_providers__provider_id__reset_breaker_post","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/summary":{"get":{"tags":["admin"],"summary":"Global Summary","operationId":"global_summary_api_admin_usage_summary_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/daily":{"get":{"tags":["admin"],"summary":"Global Daily","operationId":"global_daily_api_admin_usage_daily_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/recent":{"get":{"tags":["admin"],"summary":"Global Recent","operationId":"global_recent_api_admin_usage_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":300,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/usage/by-key":{"get":{"tags":["admin"],"summary":"Global By Key","operationId":"global_by_key_api_admin_usage_by_key_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/admin/audit":{"get":{"tags":["admin"],"summary":"Audit Logs","operationId":"audit_logs_api_admin_audit_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":300,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/stats":{"get":{"tags":["recognition"],"summary":"Stats","operationId":"stats_v1_stats_get","parameters":[{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ocr":{"post":{"tags":["recognition"],"summary":"Ocr","operationId":"ocr_v1_ocr_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API Key，格式 cap_xxx","title":"X-Api-Key"},"description":"API Key，格式 cap_xxx"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_ocr_v1_ocr_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/slide":{"post":{"tags":["recognition"],"summary":"Slide","operationId":"slide_v1_slide_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API Key，格式 cap_xxx","title":"X-Api-Key"},"description":"API Key，格式 cap_xxx"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_slide_v1_slide_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/try/ocr":{"post":{"tags":["try"],"summary":"Try Ocr","operationId":"try_ocr_api_try_ocr_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_try_ocr_api_try_ocr_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/try/slide":{"post":{"tags":["try"],"summary":"Try Slide","operationId":"try_slide_api_try_slide_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_try_slide_api_try_slide_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AdminKeyUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":60,"minLength":1},{"type":"null"}],"title":"Name"},"note":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Note"},"max_concurrency":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Max Concurrency"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"AdminKeyUpdate"},"BatchCreate":{"properties":{"face_value":{"type":"integer","maximum":1000000.0,"minimum":1.0,"title":"Face Value"},"valid_days":{"type":"integer","maximum":3650.0,"minimum":1.0,"title":"Valid Days","default":180},"quantity":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Quantity","default":10},"per_code_uses":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Per Code Uses","default":1},"per_user_limit":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Per User Limit","default":1},"note":{"type":"string","maxLength":200,"title":"Note","default":""}},"type":"object","required":["face_value"],"title":"BatchCreate"},"Body_ocr_v1_ocr_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_ocr_v1_ocr_post"},"Body_slide_v1_slide_post":{"properties":{"target":{"type":"string","contentMediaType":"application/octet-stream","title":"Target"},"background":{"type":"string","contentMediaType":"application/octet-stream","title":"Background"},"simple_target":{"type":"boolean","title":"Simple Target","default":false}},"type":"object","required":["target","background"],"title":"Body_slide_v1_slide_post"},"Body_try_ocr_api_try_ocr_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_try_ocr_api_try_ocr_post"},"Body_try_slide_api_try_slide_post":{"properties":{"target":{"type":"string","contentMediaType":"application/octet-stream","title":"Target"},"background":{"type":"string","contentMediaType":"application/octet-stream","title":"Background"},"simple_target":{"type":"boolean","title":"Simple Target","default":false}},"type":"object","required":["target","background"],"title":"Body_try_slide_api_try_slide_post"},"CheckinConfig":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":true},"daily_points":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Daily Points","default":5},"valid_days":{"type":"integer","maximum":3650.0,"minimum":1.0,"title":"Valid Days","default":30}},"type":"object","title":"CheckinConfig"},"ConcurrencyConfig":{"properties":{"account_max":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Account Max","default":4},"key_max":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Key Max","default":2}},"type":"object","title":"ConcurrencyConfig"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"KeyCreate":{"properties":{"name":{"type":"string","maxLength":60,"minLength":1,"title":"Name"},"note":{"type":"string","maxLength":200,"title":"Note","default":""},"max_concurrency":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Max Concurrency","default":0},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},"type":"object","required":["name"],"title":"KeyCreate"},"KeyUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":60,"minLength":1},{"type":"null"}],"title":"Name"},"note":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Note"},"max_concurrency":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Max Concurrency"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"KeyUpdate"},"LoginBody":{"properties":{"username":{"type":"string","maxLength":64,"minLength":1,"title":"Username"},"password":{"type":"string","maxLength":256,"minLength":1,"title":"Password"}},"type":"object","required":["username","password"],"title":"LoginBody"},"PasswordBody":{"properties":{"current_password":{"type":"string","maxLength":256,"minLength":1,"title":"Current Password"},"new_password":{"type":"string","maxLength":256,"minLength":8,"title":"New Password"}},"type":"object","required":["current_password","new_password"],"title":"PasswordBody"},"PointsAdjust":{"properties":{"points":{"type":"integer","maximum":1000000.0,"minimum":-1000000.0,"title":"Points"},"valid_days":{"anyOf":[{"type":"integer","maximum":3650.0,"minimum":1.0},{"type":"null"}],"title":"Valid Days"},"note":{"type":"string","maxLength":200,"title":"Note","default":""}},"type":"object","required":["points"],"title":"PointsAdjust"},"ProviderCreate":{"properties":{"name":{"type":"string","maxLength":60,"minLength":1,"title":"Name"},"kind":{"type":"string","pattern":"^(geepass|generic_http)$","title":"Kind"},"enabled":{"type":"boolean","title":"Enabled","default":false},"priority":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Priority","default":100},"weight":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Weight","default":100},"timeout_ms":{"type":"integer","maximum":60000.0,"minimum":200.0,"title":"Timeout Ms","default":3000},"max_concurrency":{"type":"integer","maximum":1000.0,"minimum":0.0,"title":"Max Concurrency","default":0},"cost_points":{"type":"integer","maximum":1000.0,"minimum":0.0,"title":"Cost Points","default":1},"cost_currency":{"type":"number","maximum":1000000.0,"minimum":0.0,"title":"Cost Currency","default":0},"base_url":{"type":"string","maxLength":300,"title":"Base Url","default":""},"credential_env":{"type":"string","maxLength":100,"title":"Credential Env","default":""},"supports":{"items":{"type":"string"},"type":"array","title":"Supports"}},"type":"object","required":["name","kind"],"title":"ProviderCreate"},"ProviderUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":60,"minLength":1},{"type":"null"}],"title":"Name"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"priority":{"anyOf":[{"type":"integer","maximum":10000.0,"minimum":1.0},{"type":"null"}],"title":"Priority"},"weight":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":1.0},{"type":"null"}],"title":"Weight"},"timeout_ms":{"anyOf":[{"type":"integer","maximum":60000.0,"minimum":200.0},{"type":"null"}],"title":"Timeout Ms"},"max_concurrency":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":0.0},{"type":"null"}],"title":"Max Concurrency"},"cost_points":{"anyOf":[{"type":"integer","maximum":1000.0,"minimum":0.0},{"type":"null"}],"title":"Cost Points"},"cost_currency":{"anyOf":[{"type":"number","maximum":1000000.0,"minimum":0.0},{"type":"null"}],"title":"Cost Currency"},"base_url":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"title":"Base Url"},"credential_env":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Credential Env"},"supports":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Supports"}},"type":"object","title":"ProviderUpdate"},"RedeemBody":{"properties":{"code":{"type":"string","maxLength":64,"minLength":4,"title":"Code"}},"type":"object","required":["code"],"title":"RedeemBody"},"UserCreate":{"properties":{"username":{"type":"string","maxLength":32,"minLength":3,"title":"Username"},"password":{"type":"string","maxLength":256,"minLength":8,"title":"Password"},"role":{"type":"string","pattern":"^(admin|user)$","title":"Role","default":"user"}},"type":"object","required":["username","password"],"title":"UserCreate"},"UserUpdate":{"properties":{"role":{"anyOf":[{"type":"string","pattern":"^(admin|user)$"},{"type":"null"}],"title":"Role"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"password":{"anyOf":[{"type":"string","maxLength":256,"minLength":8},{"type":"null"}],"title":"Password"}},"type":"object","title":"UserUpdate"},"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"}}}}