{"openapi":"3.1.0","info":{"title":"EmailSender API","description":"Samostatná bezstavová služba pro odesílání e-mailů přes vlastní SMTP server. Klientské projekty předají přes REST API kompletní obsah e-mailu a služba zajistí jeho odeslání včetně DKIM podpisu. E-maily se nikam neukládají, pouze se odešlou a zalogují.","version":"1.0"},"servers":[{"url":"https://emailsender.ok1xoe.dev","description":"Generated server url"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"E-maily","description":"Odesílání e-mailů jménem registrovaných projektů"}],"paths":{"/api/v1/emails":{"post":{"tags":["E-maily"],"summary":"Odešle jeden e-mail jménem projektu","description":"Odeslání je synchronní — odpověď 200 znamená, že e-mail byl předán SMTP serveru. Musí být vyplněno alespoň jedno z polí textBody a htmlBody; pokud jsou vyplněna obě, e-mail se odešle jako multipart/alternative (klient příjemce si vybere HTML, textová varianta slouží jako záloha).","operationId":"send","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendEmailRequest"}}},"required":true},"responses":{"200":{"description":"E-mail odeslán (předán SMTP serveru)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/SendEmailResponse"}}}},"400":{"description":"Chyba validace nebo nečitelný JSON","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"401":{"description":"Neplatný kód projektu nebo API klíč","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"403":{"description":"Příjemce mimo whitelist projektu (pokud má projekt whitelist nastaven)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"500":{"description":"Interní chyba serveru","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"502":{"description":"E-mail se nepodařilo odeslat (SMTP nedostupné)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}}}}},"components":{"schemas":{"SendEmailRequest":{"type":"object","description":"Požadavek na odeslání e-mailu. Musí být vyplněno alespoň jedno z polí textBody a htmlBody.","properties":{"projectCode":{"type":"string","description":"Kód registrovaného projektu","example":"demo","minLength":1},"to":{"type":"array","description":"Příjemci (To)","example":["clen@example.cz"],"items":{"type":"string","format":"email","minLength":1},"maxItems":50,"minItems":0},"cc":{"type":"array","description":"Kopie (Cc)","example":["spravce@example.cz"],"items":{"type":"string","format":"email","minLength":1},"maxItems":50,"minItems":0},"bcc":{"type":"array","description":"Skrytá kopie (Bcc)","items":{"type":"string","format":"email","minLength":1},"maxItems":50,"minItems":0},"subject":{"type":"string","description":"Předmět e-mailu","example":"Potvrzení registrace","maxLength":255,"minLength":0},"textBody":{"type":"string","description":"Textové tělo e-mailu","example":"Dobrý den,\nvaše registrace byla schválena.","maxLength":200000,"minLength":0},"htmlBody":{"type":"string","description":"HTML tělo e-mailu","example":"<p>Dobrý den,<br>vaše registrace byla <b>schválena</b>.</p>","maxLength":500000,"minLength":0}},"required":["projectCode","subject","to"]},"MessageResponse":{"type":"object","description":"Chybová odpověď","properties":{"message":{"type":"string","description":"Popis chyby","example":"Neplatný kód projektu nebo API klíč"}}},"SendEmailResponse":{"type":"object","description":"Odpověď na úspěšné odeslání e-mailu","properties":{"status":{"type":"string","description":"Stav odeslání","example":"sent"},"recipientCount":{"type":"integer","format":"int32","description":"Celkový počet příjemců (to + cc + bcc)","example":3}}}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","description":"API klíč projektu (UUID) přidělený při registraci","name":"X-API-Key","in":"header"}}}}