{"components":{"schemas":{"Error":{"additionalProperties":true,"properties":{"error":{"type":"string"},"message":{"type":"string"},"ok":{"type":"boolean"}},"type":"object"},"GenericObject":{"additionalProperties":true,"type":"object"}},"securitySchemes":{"AdminTokenHeader":{"in":"header","name":"X-Admin-Token","type":"apiKey"},"ApiTokenHeader":{"in":"header","name":"X-API-Token","type":"apiKey"},"BearerAuth":{"description":"Authorization: Bearer <API_TOKEN>","scheme":"bearer","type":"http"},"SmsWebhookTokenHeader":{"in":"header","name":"X-SMS-Webhook-Token","type":"apiKey"}}},"info":{"description":"Mailbox management, HME alias creation, local-domain SMTP mailbox pool, pickup links, SMS 2FA webhook.","title":"iCloud HME / yx66.email Mail System API","version":"2026-08-25"},"openapi":"3.0.3","paths":{"/api-docs":{"get":{"description":"Public browser-readable API documentation page. No authentication required.","responses":{"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"OK"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"}},"security":[],"summary":"GET /api-docs"}},"/api/accounts":{"get":{"description":"GET /api/accounts. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/accounts"}},"/api/accounts/add":{"post":{"description":"POST /api/accounts/add. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"cookie_input":{"type":"string"},"host":{"enum":["icloud.com","icloud.com.cn"],"type":"string"},"name":{"type":"string"}},"required":["cookie_input"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/add"}},"/api/accounts/add_by_protocol":{"post":{"description":"POST /api/accounts/add_by_protocol. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"apple_id":{"type":"string"},"name":{"type":"string"},"password":{"type":"string"},"region":{"type":"string"},"sms_phone_hint":{"type":"string"},"two_factor_code":{"type":"string"}},"required":["apple_id","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/add_by_protocol"}},"/api/accounts/add_by_protocol_start":{"post":{"description":"POST /api/accounts/add_by_protocol_start. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"apple_id":{"type":"string"},"name":{"type":"string"},"password":{"type":"string"},"region":{"type":"string"},"sms_phone_hint":{"type":"string"}},"required":["apple_id","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/add_by_protocol_start"}},"/api/accounts/protocol_login/{job_id}":{"get":{"description":"GET /api/accounts/protocol_login/{job_id}. See /api/docs for details.","parameters":[{"description":"job_id","in":"path","name":"job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/accounts/protocol_login/{job_id}"}},"/api/accounts/protocol_login/{job_id}/code":{"post":{"description":"POST /api/accounts/protocol_login/{job_id}/code. See /api/docs for details.","parameters":[{"description":"job_id","in":"path","name":"job_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"type":"string"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/protocol_login/{job_id}/code"}},"/api/accounts/{acc_id}/alias-mail":{"get":{"description":"GET /api/accounts/{acc_id}/alias-mail. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}},{"description":"","in":"query","name":"force","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/accounts/{acc_id}/alias-mail"}},"/api/accounts/{acc_id}/app-password":{"post":{"description":"POST /api/accounts/{acc_id}/app-password. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"app_password":{"type":"string"},"icloud_email":{"type":"string"}},"required":["app_password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/{acc_id}/app-password"}},"/api/accounts/{acc_id}/create":{"post":{"description":"POST /api/accounts/{acc_id}/create. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"count":{"maximum":750,"minimum":1,"type":"integer"},"label":{"type":"string"}},"required":["count"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/{acc_id}/create"}},"/api/accounts/{acc_id}/inbox":{"get":{"description":"GET /api/accounts/{acc_id}/inbox. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"force","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/accounts/{acc_id}/inbox"}},"/api/accounts/{acc_id}/inbox-stream":{"get":{"description":"GET /api/accounts/{acc_id}/inbox-stream. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"days","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"text/event-stream":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/accounts/{acc_id}/inbox-stream"}},"/api/accounts/{acc_id}/mail/{alias_email}":{"get":{"description":"GET /api/accounts/{acc_id}/mail/{alias_email}. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}},{"description":"alias_email","in":"path","name":"alias_email","required":true,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"days","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"force","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/accounts/{acc_id}/mail/{alias_email}"}},"/api/accounts/{acc_id}/message/{msg_id}":{"get":{"description":"GET /api/accounts/{acc_id}/message/{msg_id}. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}},{"description":"msg_id","in":"path","name":"msg_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/accounts/{acc_id}/message/{msg_id}"}},"/api/accounts/{acc_id}/remove":{"post":{"description":"POST /api/accounts/{acc_id}/remove. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/{acc_id}/remove"}},"/api/accounts/{acc_id}/validate":{"post":{"description":"POST /api/accounts/{acc_id}/validate. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/{acc_id}/validate"}},"/api/accounts/{account_id}/refresh_login":{"post":{"description":"POST /api/accounts/{account_id}/refresh_login. See /api/docs for details.","parameters":[{"description":"account_id","in":"path","name":"account_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/accounts/{account_id}/refresh_login"}},"/api/aliases":{"get":{"description":"GET /api/aliases. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/aliases"}},"/api/create-batch":{"post":{"description":"POST /api/create-batch. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"account_ids":{"items":{"type":"string"},"type":"array"},"count_per_account":{"type":"integer"},"interval":{"type":"number"},"label":{"type":"string"}},"required":["account_ids","count_per_account"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/create-batch"}},"/api/create-batch-current":{"get":{"description":"GET /api/create-batch-current. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/create-batch-current"}},"/api/create-batch/{job_id}":{"get":{"description":"GET /api/create-batch/{job_id}. See /api/docs for details.","parameters":[{"description":"job_id","in":"path","name":"job_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/create-batch/{job_id}"}},"/api/docs":{"get":{"description":"Public Markdown API documentation. No authentication required.","responses":{"200":{"content":{"text/markdown":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[],"summary":"GET /api/docs"}},"/api/emails":{"get":{"description":"GET /api/emails. See /api/docs for details.","parameters":[{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/emails"}},"/api/export-history/restore":{"post":{"description":"POST /api/export-history/restore. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"emails":{"items":{"type":"string"},"type":"array"}},"required":["emails"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/export-history/restore"}},"/api/local-mail/mailboxes":{"get":{"description":"GET /api/local-mail/mailboxes. See /api/docs for details.","parameters":[{"description":"","in":"query","name":"include_discovered","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"active","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"exported","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"label","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"batch_id","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"offset","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/local-mail/mailboxes"}},"/api/local-mail/mailboxes/export":{"post":{"description":"POST /api/local-mail/mailboxes/export. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"emails":{"items":{"type":"string"},"type":"array"},"format":{"enum":["txt","csv"],"type":"string"},"mark_exported":{"type":"boolean"},"restore":{"type":"boolean"}},"required":[],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/local-mail/mailboxes/export"}},"/api/local-mail/mailboxes/generate":{"post":{"description":"POST /api/local-mail/mailboxes/generate. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"batch_id":{"type":"string"},"count":{"type":"integer"},"custom":{"oneOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"}]},"domain":{"type":"string"},"label":{"type":"string"},"mode":{"enum":["random","sequence","custom"],"type":"string"},"note":{"type":"string"},"prefix":{"type":"string"},"start":{"type":"integer"},"width":{"type":"integer"}},"required":["domain","mode","count"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/local-mail/mailboxes/generate"}},"/api/local-mail/mailboxes/{email}":{"delete":{"description":"DELETE /api/local-mail/mailboxes/{email}. See /api/docs for details.","parameters":[{"description":"email","in":"path","name":"email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"DELETE /api/local-mail/mailboxes/{email}"}},"/api/local-mail/mailboxes/{email}/toggle":{"post":{"description":"POST /api/local-mail/mailboxes/{email}/toggle. See /api/docs for details.","parameters":[{"description":"email","in":"path","name":"email","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"active":{"type":"boolean"}},"required":[],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/local-mail/mailboxes/{email}/toggle"}},"/api/local-mail/messages":{"get":{"description":"GET /api/local-mail/messages. See /api/docs for details.","parameters":[{"description":"","in":"query","name":"recipient","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"offset","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/local-mail/messages"}},"/api/local-mail/messages/{msg_id}":{"get":{"description":"GET /api/local-mail/messages/{msg_id}. See /api/docs for details.","parameters":[{"description":"msg_id","in":"path","name":"msg_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/local-mail/messages/{msg_id}"}},"/api/local-mail/status":{"get":{"description":"GET /api/local-mail/status. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/local-mail/status"}},"/api/local-mail/test":{"post":{"description":"POST /api/local-mail/test. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"body":{"type":"string"},"subject":{"type":"string"},"to":{"type":"string"}},"required":[],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/local-mail/test"}},"/api/log-stream":{"get":{"description":"GET /api/log-stream. See /api/docs for details.","responses":{"200":{"content":{"text/event-stream":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/log-stream"}},"/api/logs":{"get":{"description":"GET /api/logs. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/logs"}},"/api/mail":{"get":{"description":"GET /api/mail. See /api/docs for details.","parameters":[{"description":"???","in":"query","name":"email","required":true,"schema":{"type":"string"}},{"description":"","in":"query","name":"alias","required":false,"schema":{"type":"string"}},{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"description":"","in":"query","name":"days","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/mail"}},"/api/openapi.json":{"get":{"description":"Public OpenAPI 3.0 JSON specification. No authentication required.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[],"summary":"GET /api/openapi.json"}},"/api/pickup-links":{"get":{"description":"GET /api/pickup-links. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/pickup-links"}},"/api/pickup-links/export":{"post":{"description":"POST /api/pickup-links/export. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"emails":{"items":{"type":"string"},"type":"array"}},"required":[],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/pickup-links/export"}},"/api/pickup-links/{acc_id}/{alias_email}":{"delete":{"description":"DELETE /api/pickup-links/{acc_id}/{alias_email}. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}},{"description":"alias_email","in":"path","name":"alias_email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"DELETE /api/pickup-links/{acc_id}/{alias_email}"},"post":{"description":"POST /api/pickup-links/{acc_id}/{alias_email}. See /api/docs for details.","parameters":[{"description":"acc_id","in":"path","name":"acc_id","required":true,"schema":{"type":"string"}},{"description":"alias_email","in":"path","name":"alias_email","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/pickup-links/{acc_id}/{alias_email}"}},"/api/scheduler/start":{"post":{"description":"POST /api/scheduler/start. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/scheduler/start"}},"/api/scheduler/stop":{"post":{"description":"POST /api/scheduler/stop. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/scheduler/stop"}},"/api/sms/latest":{"get":{"description":"GET /api/sms/latest. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/sms/latest"}},"/api/sms/ping":{"get":{"description":"GET /api/sms/ping. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/sms/ping"}},"/api/sms/recent":{"get":{"description":"GET /api/sms/recent. See /api/docs for details.","parameters":[{"description":"","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/sms/recent"}},"/api/sms/upload":{"post":{"description":"POST /api/sms/upload. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"code":{"type":"string"},"device_id":{"type":"string"},"message":{"type":"string"},"sender":{"type":"string"}},"required":["code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"POST /api/sms/upload"}},"/api/sms/webhook":{"get":{"description":"GET /api/sms/webhook. See /api/docs for details.","parameters":[{"description":"????????","in":"query","name":"token","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"SmsWebhookTokenHeader":[]},{"BearerAuth":[]},{"ApiTokenHeader":[]}],"summary":"GET /api/sms/webhook"},"post":{"description":"POST /api/sms/webhook. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"content":{"type":"string"},"device_id":{"type":"string"},"from":{"type":"string"},"message":{"type":"string"},"msg":{"type":"string"},"sender":{"type":"string"},"simInfo":{"type":"string"}},"required":[],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"SmsWebhookTokenHeader":[]},{"BearerAuth":[]},{"ApiTokenHeader":[]}],"summary":"POST /api/sms/webhook"}},"/api/state":{"get":{"description":"GET /api/state. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"summary":"GET /api/state"}},"/docs":{"get":{"description":"Public browser-readable API documentation page. No authentication required.","responses":{"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"OK"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"}},"security":[],"summary":"GET /docs"}},"/healthz":{"get":{"description":"GET /healthz. See /api/docs for details.","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[],"summary":"GET /healthz"}},"/login":{"post":{"description":"POST /login. See /api/docs for details.","requestBody":{"content":{"application/json":{"schema":{"properties":{"password":{"type":"string"},"username":{"type":"string"}},"required":["username","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[],"summary":"POST /login"}},"/pickup/{token}":{"get":{"description":"GET /pickup/{token}. See /api/docs for details.","parameters":[{"description":"token","in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[],"summary":"GET /pickup/{token}"}},"/pickup/{token}/message/{msg_id}":{"get":{"description":"GET /pickup/{token}/message/{msg_id}. See /api/docs for details.","parameters":[{"description":"token","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"description":"msg_id","in":"path","name":"msg_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[],"summary":"GET /pickup/{token}/message/{msg_id}"}},"/pickup/{token}/messages":{"get":{"description":"GET /pickup/{token}/messages. See /api/docs for details.","parameters":[{"description":"token","in":"path","name":"token","required":true,"schema":{"type":"string"}},{"description":"","in":"query","name":"force","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericObject"}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Unauthorized"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Not Found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Conflict"},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Internal Error"}},"security":[],"summary":"GET /pickup/{token}/messages"}}},"security":[{"BearerAuth":[]},{"ApiTokenHeader":[]},{"AdminTokenHeader":[]}],"servers":[{"description":"default local service","url":"http://127.0.0.1:5050"}]}
