| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096 | openapi: 3.1.0info:  description: >-    mailcow is complete e-mailing solution with advanced antispam, antivirus,    nice UI and API.    In order to use this API you have to create a API key and add your IP    address to the whitelist of allowed IPs this can be done by logging into the    Mailcow UI using your admin account, then go to Configuration > Access >    Edit administrator details > API. There you will find a collapsed API menu.    There are two types of API keys      - The read only key can only be used for all get endpoints      - The read write key can be used for all endpoints  title: mailcow API  version: "1.0.0"servers:  - url: /components:  securitySchemes:    ApiKeyAuth:      type: apiKey      in: header      name: X-API-Key  responses:    Unauthorized:      description: Unauthorized      content:        application/json:          schema:            type: object            properties:              type:                type: string                example: error              msg:                type: string                example: authentication failed            required:              - type              - msgsecurity:  - ApiKeyAuth: []paths:  /api/v1/add/alias:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - add                        - alias                        - active: "1"                          address: alias@domain.tld                          goto: destination@domain.tld                        - null                      msg:                        - alias_added                        - alias@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Aliases      description: >-        You may create your own mailbox alias using this action. It takes a JSON        object containing a domain informations.        Only one `goto*` option can be used, for ex. if you want learn as spam,        then send just `goto_spam = 1` in request body.      operationId: Create alias      requestBody:        content:          application/json:            schema:              example:                active: "1"                address: alias@domain.tld                goto: destination@domain.tld              properties:                active:                  description: is alias active or not                  type: boolean                address:                  description: 'alias address, for catchall use "@domain.tld"'                  type: string                goto:                  description: "destination address, comma separated"                  type: string                goto_ham:                  description: learn as ham                  type: boolean                goto_null:                  description: silently ignore                  type: boolean                goto_spam:                  description: learn as spam                  type: boolean                sogo_visible:                  description: toggle visibility as selectable sender in SOGo                  type: boolean              type: object      summary: Create alias  /api/v1/add/time_limited_alias:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - add                        - time_limited_alias                        - address: info@domain.tld                          domain: domain.tld                        - null                      msg:                        - mailbox_modified                        - info@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Aliases      description: >-        You may create a time limited alias using this action. It takes a JSON        object containing a domain and mailbox informations.        Mailcow will generate a random alias.      operationId: Create time limited alias      requestBody:        content:          application/json:            schema:              example:                username: info@domain.tld                domain: domain.tld              properties:                username:                  description: 'the mailbox an alias should be created for'                  type: string                domain:                  description: "the domain"                  type: string              type: object      summary: Create time limited alias  /api/v1/add/app-passwd:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - app_passwd                        - add                        - active: "1"                          username: info@domain.tld                          app_name: wordpress                          app_passwd: keyleudecticidechothistishownsan31                          app_passwd2: keyleudecticidechothistishownsan31                          protocols:                            - imap_access                            - dav_access                            - smtp_access                            - eas_access                            - pop3_access                            - sieve_access                      msg: app_passwd_added                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - App Passwords      description: >-        Using this endpoint you can create a new app password for a specific        mailbox.      operationId: Create App Password      requestBody:        content:          application/json:            schema:              example:                active: "1"                username: info@domain.tld                app_name: wordpress                app_passwd: keyleudecticidechothistishownsan31                app_passwd2: keyleudecticidechothistishownsan31                protocols:                  - imap_access                  - dav_access                  - smtp_access                  - eas_access                  - pop3_access                  - sieve_access              properties:                active:                  description: is alias active or not                  type: boolean                username:                  description: mailbox for which the app password should be created                  type: string                app_name:                  description: name of your app password                  type: string                app_passwd:                  description: your app password                  type: string                app_passwd2:                  description: your app password                  type: string              type: object      summary: Create App Password  /api/v1/add/bcc:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - bcc                        - add                        - active: "1"                          bcc_dest: bcc@awesomecow.tld                          local_dest: mailcow.tld                          type: sender                        - null                      msg: bcc_saved                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Address Rewriting      description: >-        Using this endpoint you can create a BCC map to forward all mails via a        bcc for a given domain.      operationId: Create BCC Map      requestBody:        content:          application/json:            schema:              example:                active: "1"                bcc_dest: bcc@awesomecow.tld                local_dest: mailcow.tld                type: sender              properties:                active:                  description: 1 for a active user account 0 for a disabled user account                  type: number                bcc_dest:                  description: the email address where all mails should be send to                  type: string                local_dest:                  description: the domain which emails should be forwarded                  type: string                type:                  description: the type of bcc map can be `sender` or `rcpt`                  enum: [sender, rcpt]                  type: string              type: object      summary: Create BCC Map  /api/v1/add/dkim:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - dkim                        - add                        - dkim_selector: dkim                          domains: hanspeterlol.de                          key_size: "2048"                      msg:                        - dkim_added                        - hanspeterlol.de                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - DKIM      description: Using this endpoint you can generate new DKIM keys.      operationId: Generate DKIM Key      requestBody:        content:          application/json:            schema:              example:                dkim_selector: dkim                domains: mailcow.tld                key_size: "2048"              properties:                dkim_selector:                  description: the DKIM selector default dkim                  type: string                domains:                  description: a list of domains for which a dkim key should be generated                  type: string                key_size:                  description: the key size (1024, 2048, 3072 or 4096)                  type: number              type: object      summary: Generate DKIM Key  /api/v1/add/dkim_duplicate:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - dkim                        - duplicate                        - from_domain: mailcow.tld                          to_domain: awesomecow.tld                      msg:                        - dkim_duplicated                        - mailcow.tld                        - awesomecow.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - DKIM      description: Using this endpoint you can duplicate the DKIM Key of one domain.      operationId: Duplicate DKIM Key      requestBody:        content:          application/json:            schema:              example:                from_domain: mailcow.tld                to_domain: awesomecow.tld              properties:                fron_domain:                  description: the domain where the dkim key should be copied from                  type: string                to_domain:                  description: the domain where the dkim key should be copied to                  type: string              type: object      summary: Duplicate DKIM Key  /api/v1/add/domain:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - ratelimit                        - edit                        - domain                        - object: domain.tld                          rl_frame: s                          rl_value: "10"                      msg:                        - rl_saved                        - domain.tld                      type: success                    - log:                        - mailbox                        - add                        - domain                        - active: "1"                          aliases: "400"                          restart_sogo: "1"                          backupmx: "0"                          defquota: "3072"                          description: some decsription                          domain: domain.tld                          mailboxes: "10"                          maxquota: "10240"                          quota: "10240"                          relay_all_recipients: "0"                          rl_frame: s                          rl_value: "10"                          tags: ["tag1", "tag2"]                        - null                      msg:                        - domain_added                        - domain.tld                      type: success              schema:                type: array                items:                  type: object                  properties:                    log:                      description: contains request object                      items: {}                      type: array                    msg:                      items: {}                      type: array                    type:                      enum:                        - success                        - danger                        - error                      type: string          description: OK          headers: {}      tags:        - Domains      description: >-        You may create your own domain using this action. It takes a JSON object        containing a domain informations.      operationId: Create domain      requestBody:        content:          application/json:            schema:              example:                active: "1"                aliases: "400"                backupmx: "0"                defquota: "3072"                description: some decsription                domain: domain.tld                mailboxes: "10"                maxquota: "10240"                quota: "10240"                relay_all_recipients: "0"                rl_frame: s                rl_value: "10"                restart_sogo: "10"                tags: ["tag1", "tag2"]              properties:                active:                  description: is domain active or not                  type: boolean                aliases:                  description: limit count of aliases associated with this domain                  type: number                backupmx:                  description: relay domain or not                  type: boolean                defquota:                  description: predefined mailbox quota in `add mailbox` form                  type: number                description:                  description: Description of domain                  type: string                domain:                  description: Fully qualified domain name                  type: string                gal:                  description: >-                    is domain global address list active or not, it enables                    shared contacts accross domain in SOGo webmail                  type: boolean                mailboxes:                  description: limit count of mailboxes associated with this domain                  type: number                maxquota:                  description: maximum quota per mailbox                  type: number                quota:                  description: maximum quota for this domain (for all mailboxes in sum)                  type: number                restart_sogo:                  description: restart SOGo to activate the domain in SOGo                  type: number                relay_all_recipients:                  description: >-                    if not, them you have to create "dummy" mailbox for each                    address to relay                  type: boolean                relay_unknown_only:                  description: Relay non-existing mailboxes only. Existing mailboxes will be delivered locally.                  type: boolean                rl_frame:                  enum:                    - s                    - m                    - h                    - d                  type: string                rl_value:                  description: rate limit value                  type: number                tags:                  description: tags for this Domain                  type: array                  items:                    type: string              type: object      summary: Create domain  /api/v1/add/domain-admin:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - domain_admin                        - add                        - active: "1"                          domains: mailcow.tld                          password: "*"                          password2: "*"                          username: testadmin                      msg:                        - domain_admin_added                        - testadmin                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Domain admin      description: >-        Using this endpoint you can create a new Domain Admin user. This user        has full control over a domain, and can create new mailboxes and        aliases.      operationId: Create Domain Admin user      requestBody:        content:          application/json:            schema:              example:                active: "1"                domains: mailcow.tld                password: supersecurepw                password2: supersecurepw                username: testadmin              properties:                active:                  description: 1 for a active user account 0 for a disabled user account                  type: number                domains:                  description: the domains the user should be a admin of                  type: string                password:                  description: domain admin user password                  type: string                password2:                  description: domain admin user password                  type: string                username:                  description: the username for the admin user                  type: string              type: object      summary: Create Domain Admin user  /api/v1/add/sso/domain-admin:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    token: "591F6D-5C3DD2-7455CD-DAF1C1-AA4FCC"          description: OK          headers: { }      tags:        - Single Sign-On      description: >-        Using this endpoint you can issue a token for Domain Admin user. This token can be used for        autologin Domain Admin user by using query_string var sso_token={token}. Token expiration time is 30s      operationId: Issue Domain Admin SSO token      requestBody:        content:          application/json:            schema:              example:                username: testadmin              properties:                username:                  description: the username for the admin user                  type: object              type: object      summary: Issue Domain Admin SSO token  /api/v1/edit/da-acl:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - type: success                      log:                        - acl                        - edit                        - testadmin                        - username:                            - testadmin                          da_acl:                            - syncjobs                            - quarantine                            - login_as                            - sogo_access                            - app_passwds                            - bcc_maps                            - pushover                            - filters                            - ratelimit                            - spam_policy                            - extend_sender_acl                            - unlimited_quota                            - protocol_access                            - smtp_ip_access                            - alias_domains                            - domain_desc                      msg:                        - acl_saved                        - testadmin              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Domain admin      description: >-        Using this endpoint you can edit the ACLs of a Domain Admin user. This user        has full control over a domain, and can create new mailboxes and        aliases.      operationId: Edit Domain Admin ACL      requestBody:        content:          application/json:            schema:              example:                items:                  - testadmin                attr:                  da_acl:                    - syncjobs                    - quarantine                    - login_as                    - sogo_access                    - app_passwds                    - bcc_maps                    - pushover                    - filters                    - ratelimit                    - spam_policy                    - extend_sender_acl                    - unlimited_quota                    - protocol_access                    - smtp_ip_access                    - alias_domains                    - domain_desc              properties:                items:                  description: contains the domain admin username you want to edit                  type: object                attr:                  properties:                    da_acl:                      description: contains the list of acl names that are active for this user                      type: object                  type: object      summary: Edit Domain Admin ACL  /api/v1/edit/domain-admin:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - type: success                      log:                        - domain_admin                        - edit                        - username: testadmin                          active: ["0","1"]                          username_new: testadmin                          domains: ["domain.tld"]                          password: "*"                          password2: "*"                      msg:                        - domain_admin_modified                        - testadmin              schema:                properties:                  type:                    enum:                      - success                      - danger                      - error                    type: string                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                type: object          description: OK          headers: {}      tags:        - Domain admin      description: >-        Using this endpoint you can edit a existing Domain Admin user. This user        has full control over a domain, and can create new mailboxes and        aliases.      operationId: Edit Domain Admin user      requestBody:        content:          application/json:            schema:              example:                items:                  - testadmin                attr:                  active:                    - '0'                    - '1'                  username_new: testadmin                  domains: ["domain.tld"]                  password: supersecurepassword                  password2: supersecurepassword              properties:                attr:                  properties:                    active:                      description: is the domain admin active or not                      type: boolean                    username_new:                      description: the username of the domain admin, change this to change the username                      type: string                    domains:                      description: a list of all domains managed by this domain admin                      type: array                      items:                        type: string                    password:                      description: the new domain admin user password                      type: string                    password2:                      description: the new domain admin user password for confirmation                      type: string                  type: object                items:                  description: contains the domain admin username you want to edit                  type: object      summary: Edit Domain Admin user  /api/v1/add/domain-policy:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - policy                        - add                        - domain                        - domain: domain.tld                          object_from: "*@baddomain.tld"                          object_list: bl                      msg:                        - domain_modified                        - domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Domain antispam policies      description: >-        You may create your own domain policy using this action. It takes a JSON        object containing a domain informations.      operationId: Create domain policy      requestBody:        content:          application/json:            schema:              example:                domain: domain.tld                object_from: "*@baddomain.tld"                object_list: bl              properties:                domain:                  description: domain name to which policy is associated to                  type: string                object_from:                  description: exact address or use wildcard to match whole domain                  type: string                object_list:                  enum:                    - wl                    - bl                  type: string              type: object      summary: Create domain policy  /api/v1/add/fwdhost:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - fwdhost                        - add                        - filter_spam: "0"                          hostname: hosted.mailcow.de                      msg:                        - forwarding_host_added                        - "5.1.76.202, 2a00:f820:417::202"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Fordwarding Hosts      description: >-        Add a new Forwarding host to mailcow. You can chose to enable or disable        spam filtering of incoming emails by specifing `filter_spam` 0 =        inactive, 1 = active.      operationId: Add Forward Host      requestBody:        content:          application/json:            schema:              example:                filter_spam: "0"                hostname: hosted.mailcow.de              properties:                filter_spam:                  description: "1 to enable spam filter, 0 to disable spam filter"                  type: number                hostname:                  description: contains the hostname you want to add                  type: string              type: object      summary: Add Forward Host  /api/v1/add/mailbox:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - add                        - mailbox                        - active: "1"                          domain: domain.tld                          local_part: info                          name: Full name                          password: "*"                          password2: "*"                          quota: "3072"                          force_pw_update: "1"                          tls_enforce_in: "1"                          tls_enforce_out: "1"                          tags: ["tag1", "tag2"]                        - null                      msg:                        - mailbox_added                        - info@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: >-        You may create your own mailbox using this action. It takes a JSON        object containing a domain informations.      operationId: Create mailbox      requestBody:        content:          application/json:            schema:              example:                active: "1"                domain: domain.tld                local_part: info                name: Full name                authsource: mailcow                password: atedismonsin                password2: atedismonsin                quota: "3072"                force_pw_update: "1"                tls_enforce_in: "1"                tls_enforce_out: "1"                tags: ["tag1", "tag2"]              properties:                active:                  description: is mailbox active or not                  type: boolean                domain:                  description: domain name                  type: string                local_part:                  description: left part of email address                  type: string                name:                  description: Full name of the mailbox user                  type: string                authsource:                  description: Specifies the authentication source for the mailbox.                  type: string                  enum: [mailcow, ldap, keycloak, generic-oidc]                  default: mailcow                password2:                  description: mailbox password for confirmation                  type: string                password:                  description: mailbox password when using `mailcow` as the authentication source.                  type: string                quota:                  description: mailbox quota                  type: number                force_pw_update:                  description: forces the user to update its password on first login                  type: boolean                tls_enforce_in:                  description: force inbound email tls encryption                  type: boolean                tls_enforce_out:                  description: force oubound tmail tls encryption                  type: boolean              type: object      summary: Create mailbox  /api/v1/add/oauth2-client:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - oauth2                        - add                        - client                        - redirect_uri: "https://mailcow.tld"                      msg: Added client access                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - oAuth Clients      description: Using this endpoint you can create a oAuth clients.      operationId: Create oAuth Client      requestBody:        content:          application/json:            schema:              example:                redirect_uri: "https://mailcow.tld"              properties:                redirect_uri:                  description: the uri where you should be redirected after oAuth                  type: string              type: object      summary: Create oAuth Client  /api/v1/add/recipient_map:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - recipient_map                        - add                        - active: "1"                          recipient_map_new: target@mailcow.tld                          recipient_map_old: recipient@mailcow.tld                        - null                      msg:                        - recipient_map_entry_saved                        - recipient@mailcow.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Address Rewriting      description: >-        Using this endpoint you can create a recipient map to forward all mails        from one email address to another.      operationId: Create Recipient Map      requestBody:        content:          application/json:            schema:              example:                active: "1"                recipient_map_new: target@mailcow.tld                recipient_map_old: recipient@mailcow.tld              properties:                active:                  description: 1 for a active user account 0 for a disabled user account                  type: number                recipient_map_new:                  description: the email address that should receive the forwarded emails                  type: string                recipient_map_old:                  description: the email address which emails should be forwarded                  type: string              type: object      summary: Create Recipient Map  /api/v1/add/relayhost:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - relayhost                        - add                        - hostname: "mailcow.tld:25"                          password: supersecurepassword                          username: testuser                      msg:                        - relayhost_added                        - ""                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Routing      description: Using this endpoint you can create Sender-Dependent Transports.      operationId: Create Sender-Dependent Transports      requestBody:        content:          application/json:            schema:              example:                hostname: "mailcow.tld:25"                password: supersecurepassword                username: testuser              properties:                hostname:                  description: the hostname of the smtp server with port                  type: string                password:                  description: the password for the smtp user                  type: string                username:                  description: the username used to authenticate                  type: string              type: object      summary: Create Sender-Dependent Transports  /api/v1/add/resource:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - add                        - resource                        - active: "1"                          description: test                          domain: mailcow.tld                          kind: location                          multiple_bookings: "0"                          multiple_bookings_custom: ""                          multiple_bookings_select: "0"                        - null                      msg:                        - resource_added                        - mailcow.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Resources      description: Using this endpoint you can create Resources.      operationId: Create Resources      requestBody:        content:          application/json:            schema:              example:                active: "1"                description: test                domain: mailcow.tld                kind: location                multiple_bookings: "0"                multiple_bookings_custom: ""                multiple_bookings_select: "0"              properties:                active:                  description: 1 for a active transport map 0 for a disabled transport map                  type: number                description:                  description: a description of the resource                  type: string                domain:                  description: the domain for which the resource should be                  type: string                kind:                  description: the kind of recouse                  enum:                    - location                    - group                    - thing                  type: string                multiple_bookings:                  enum:                    - "-1"                    - "1"                    - custom                  type: string                multiple_bookings_custom:                  description: always empty                  type: number                multiple_bookings_select:                  enum:                    - "-1"                    - "1"                    - custom                  type: string              type: object      summary: Create Resources  /api/v1/add/syncjob:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - add                        - syncjob                        - active: "1"                          automap: "1"                          custom_params: ""                          delete1: "0"                          delete2: "0"                          delete2duplicates: "1"                          enc1: SSL                          exclude: (?i)spam|(?i)junk                          host1: imap.server.tld                          maxage: "0"                          maxbytespersecond: "0"                          mins_interval: "20"                          password1: supersecret                          port1: 993                          skipcrossduplicates: "0"                          subfolder2: External                          subscribeall: "1"                          timeout1: "600"                          timeout2: "600"                          user1: username                          username: mailbox@domain.tld                        - null                      msg:                        - mailbox_modified                        - mailbox@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Sync jobs      description: >-        You can create new sync job using this action. It takes a JSON object        containing a domain informations.      operationId: Create sync job      summary: Create sync job      requestBody:        content:          application/json:            schema:              example:                username: lisa@mailcow.tld                host1: mail.mailcow.tld                port1: "143"                user1: demo@mailcow.tld                password1: supersecretpw                enc1: TLS                mins_interval: "20"                subfolder2: "/SyncIntoSubfolder"                maxage: "0"                maxbytespersecond: "0"                timeout1: "600"                timeout2: "600"                exclude: "(?i)spam|(?i)junk"                custom_params: "--dry"                delete2duplicates: "1"                delete1: "1"                delete2: "0"                automap: "1"                skipcrossduplicates: "0"                subscribeall: "0"                active: "1"              properties:                parameters:                  description: your local mailcow mailbox                  type: string                host1:                  description: the smtp server where mails should be synced from                  type: string                port1:                  description: the smtp port of the target mail server                  type: string                user1:                  description: the username of the mailbox                  type: string                password:                  description: the password of the mailbox                  type: string                enc1:                  description: the encryption method used to connect to the mailserver                  type: string                mins_internal:                  description: the interval in which messages should be syned                  type: number                subfolder2:                  description: sync into subfolder on destination (empty = do not use subfolder)                  type: string                maxage:                  description: only sync messages up to this age in days                  type: number                maxbytespersecond:                  description: max speed transfer limit for the sync                  type: number                timeout1:                  description: timeout for connection to remote host                  type: number                timeout2:                  description: timeout for connection to local host                  type: number                exclude:                  description: exclude objects (regex)                  type: string                custom_params:                  description: custom parameters                  type: string                delete2duplicates:                  description: delete duplicates on destination (--delete2duplicates)                  type: boolean                delete1:                  description: delete from source when completed (--delete1)                  type: boolean                delete2:                  description: delete messages on destination that are not on source (--delete2)                  type: boolean                automap:                  description: try to automap folders ("Sent items", "Sent" => "Sent" etc.) (--automap)                  type: boolean                skipcrossduplicates:                  description: skip duplicate messages across folders (first come, first serve) (--skipcrossduplicates)                  type: boolean                subscribeall:                  description: subscribe all folders (--subscribeall)                  type: boolean                active:                  description: enables or disables the sync job                  type: boolean              type: object  /api/v1/add/tls-policy-map:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - tls_policy_maps                        - add                        - parameters: ""                          active: "1"                          dest: mailcow.tld                          policy: encrypt                        - null                      msg:                        - tls_policy_map_entry_saved                        - mailcow.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Outgoing TLS Policy Map Overrides      description: Using this endpoint you can create a TLS policy map override.      operationId: Create TLS Policy Map      requestBody:        content:          application/json:            schema:              example:                parameters: ""                active: "1"                dest: mailcow.tld                policy: encrypt              properties:                parameters:                  description: >-                    custom parameters you find out more about them                    [here](http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps)                  type: string                active:                  description: 1 for a active user account 0 for a disabled user account                  type: number                dest:                  description: the target domain or email address                  type: string                policy:                  description: the policy                  enum:                    - none                    - may                    - encrypt                    - dane                    - "'dane"                    - fingerprint                    - verify                    - secure                  type: string              type: object      summary: Create TLS Policy Map  /api/v1/add/transport:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - transport                        - add                        - active: "1"                          destination: example2.org                          nexthop: "host:25"                          password: supersecurepw                          username: testuser                      msg:                        - relayhost_added                        - ""                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Routing      description: Using this endpoint you can create Sender-Dependent Transports.      operationId: Create Transport Maps      requestBody:        content:          application/json:            schema:              example:                active: "1"                destination: example.org                nexthop: "host:25"                password: supersecurepw                username: testuser              properties:                active:                  description: 1 for a active transport map 0 for a disabled transport map                  type: number                destination:                  type: string                nexthop:                  type: string                password:                  description: the password for the smtp user                  type: string                username:                  description: the username used to authenticate                  type: string              type: object      summary: Create Transport Maps  /api/v1/delete/alias:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - delete                        - alias                        - id:                            - "6"                            - "9"                        - null                      msg:                        - alias_removed                        - alias@domain.tld                      type: success                    - log:                        - mailbox                        - delete                        - alias                        - id:                            - "6"                            - "9"                        - null                      msg:                        - alias_removed                        - alias2@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Aliases      description: You can delete one or more aliases.      operationId: Delete alias      requestBody:        content:          application/json:            schema:              items:                example: "6"                type: string              type: array      summary: Delete alias  /api/v1/delete/app-passwd:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - app_passwd                        - delete                        - id:                            - "2"                      msg:                        - app_passwd_removed                        - "2"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - App Passwords      description: Using this endpoint you can delete a single app password.      operationId: Delete App Password      requestBody:        content:          application/json:            schema:              example:                - "1"              properties:                items:                  description: contains list of app passwords you want to delete                  type: object              type: object      summary: Delete App Password  /api/v1/delete/bcc:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - bcc                        - delete                        - id:                            - "4"                        - null                      msg:                        - bcc_deleted                        - "4"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Address Rewriting      description: >-        Using this endpoint you can delete a BCC map, for this you have to know        its ID. You can get the ID using the GET method.      operationId: Delete BCC Map      requestBody:        content:          application/json:            schema:              example:                - "3"              properties:                items:                  description: contains list of bcc maps you want to delete                  type: object              type: object      summary: Delete BCC Map  /api/v1/delete/dkim:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - dkim                        - delete                        - domains:                            - mailcow.tld                      msg:                        - dkim_removed                        - mailcow.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - DKIM      description: Using this endpoint a existing DKIM Key can be deleted      operationId: Delete DKIM Key      requestBody:        content:          application/json:            schema:              items:                example:                  - mailcow.tld                type: string              type: array      summary: Delete DKIM Key  /api/v1/delete/domain:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - delete                        - domain                        - domain:                            - domain.tld                            - domain2.tld                        - null                      msg:                        - domain_removed                        - domain.tld                      type: success                    - log:                        - mailbox                        - delete                        - domain                        - domain:                            - domain.tld                            - domain2.tld                        - null                      msg:                        - domain_removed                        - domain2.tld                      type: success              schema:                type: array                items:                  type: object                  properties:                    log:                      description: contains request object                      items: {}                      type: array                    msg:                      items: {}                      type: array                    type:                      enum:                        - success                        - danger                        - error                      type: string          description: OK          headers: {}      tags:        - Domains      description: You can delete one or more domains.      operationId: Delete domain      requestBody:        content:          application/json:            schema:              type: object              example:                - domain.tld                - domain2.tld              properties:                items:                  type: array                  items:                    type: string      summary: Delete domain  /api/v1/delete/domain-admin:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - domain_admin                        - delete                        - username:                            - testadmin                      msg:                        - domain_admin_removed                        - testadmin                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Domain admin      description: Using this endpoint a existing Domain Admin user can be deleted.      operationId: Delete Domain Admin      requestBody:        content:          application/json:            schema:              example:                - testadmin              properties:                items:                  description: contains list of usernames of the users you want to delete                  type: object              type: object      summary: Delete Domain Admin  /api/v1/delete/domain-policy:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - policy                        - delete                        - domain                        - prefid:                            - "1"                            - "2"                      msg:                        - item_deleted                        - "1"                      type: success                    - log:                        - policy                        - delete                        - domain                        - prefid:                            - "1"                            - "2"                      msg:                        - item_deleted                        - "2"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Domain antispam policies      description: You can delete one o more domain policies.      operationId: Delete domain policy      requestBody:        content:          application/json:            schema:              example:                - "1"                - "2"              properties:                items:                  description: contains list of domain policys you want to delete                  type: object              type: object      summary: Delete domain policy  /api/v1/delete/fwdhost:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - fwdhost                        - delete                        - forwardinghost:                            - 5.1.76.202                            - "2a00:f820:417::202"                      msg:                        - forwarding_host_removed                        - 5.1.76.202                      type: success                    - log:                        - fwdhost                        - delete                        - forwardinghost:                            - 5.1.76.202                            - "2a00:f820:417::202"                      msg:                        - forwarding_host_removed                        - "2a00:f820:417::202"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Fordwarding Hosts      description: >-        Using this endpoint you can delete a forwarding host, in order to do so        you need to know the IP of the host.      operationId: Delete Forward Host      requestBody:        content:          application/json:            schema:              example:                - 5.1.76.202                - "2a00:f820:417::202"              properties:                ip:                  description: contains the ip of the fowarding host you want to delete                  type: string              type: object      summary: Delete Forward Host  /api/v1/delete/mailbox:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - delete                        - mailbox                        - username:                            - info@domain.tld                            - sales@domain.tld                        - null                      msg:                        - mailbox_removed                        - info@domain.tld                      type: success                    - log:                        - mailbox                        - delete                        - mailbox                        - username:                            - info@domain.tld                            - sales@domain.tld                        - null                      msg:                        - mailbox_removed                        - sales@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: You can delete one or more mailboxes.      operationId: Delete mailbox      requestBody:        content:          application/json:            schema:              example:                - info@domain.tld                - sales@domain.tld              properties:                items:                  description: contains list of mailboxes you want to delete                  type: object              type: object      summary: Delete mailbox  /api/v1/delete/mailq:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    msg: Task completed                    type: success          description: OK          headers: {}      tags:        - Queue Manager      description: >-        Using this API you can delete the current mail queue. This will delete        all mails in it.        This API uses the command: `postsuper -d`      operationId: Delete Queue      requestBody:        content:          application/json:            schema:              example:                action: super_delete              properties:                action:                  description: use super_delete to delete the mail queue                  type: string              type: object      summary: Delete Queue  /api/v1/delete/oauth2-client:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - oauth2                        - delete                        - client                        - id:                            - "1"                      msg:                        - items_deleted                        - "1"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - oAuth Clients      description: >-        Using this endpoint you can delete a oAuth client, for this you have to        know its ID. You can get the ID using the GET method.      operationId: Delete oAuth Client      requestBody:        content:          application/json:            schema:              example:                - "3"              properties:                items:                  description: contains list of oAuth clients you want to delete                  type: object              type: object      summary: Delete oAuth Client  /api/v1/delete/qitem:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - quarantine                        - delete                        - id:                            - "33"                      msg:                        - item_deleted                        - "33"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Quarantine      description: >-        Using this endpoint you can delete a email from quarantine, for this you        have to know its ID. You can get the ID using the GET method.      operationId: Delete mails in Quarantine      requestBody:        content:          application/json:            schema:              example:                - "33"              properties:                items:                  description: contains list of emails you want to delete                  type: object              type: object      summary: Delete mails in Quarantine  /api/v1/delete/recipient_map:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - recipient_map                        - delete                        - id:                            - "1"                        - null                      msg:                        - recipient_map_entry_deleted                        - "1"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Address Rewriting      description: >-        Using this endpoint you can delete a recipient map, for this you have to        know its ID. You can get the ID using the GET method.      operationId: Delete Recipient Map      requestBody:        content:          application/json:            schema:              example:                - "1"              properties:                items:                  description: contains list of recipient maps you want to delete                  type: object              type: object      summary: Delete Recipient Map  /api/v1/delete/relayhost:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - relayhost                        - delete                        - id:                            - "1"                      msg:                        - relayhost_removed                        - "1"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Routing      description: >-        Using this endpoint you can delete a Sender-Dependent Transport, for        this you have to know its ID. You can get the ID using the GET method.      operationId: Delete Sender-Dependent Transports      requestBody:        content:          application/json:            schema:              example:                - "1"              properties:                items:                  description: >-                    contains list of Sender-Dependent Transport you want to                    delete                  type: object              type: object      summary: Delete Sender-Dependent Transports  /api/v1/delete/resource:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - delete                        - resource                        - name:                            - test@mailcow.tld                        - null                      msg:                        - resource_removed                        - test@mailcow.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Resources      description: >-        Using this endpoint you can delete a Resources, for this you have to        know its ID. You can get the ID using the GET method.      operationId: Delete Resources      requestBody:        content:          application/json:            schema:              example:                - test@mailcow.tld              properties:                items:                  description: contains list of Resources you want to delete                  type: object              type: object      summary: Delete Resources  /api/v1/delete/syncjob:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    log:                      - entity                      - action                      - object                    msg:                      - message                      - entity name                    type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Sync jobs      description: You can delete one or more sync jobs.      operationId: Delete sync job      requestBody:        content:          application/json:            schema:              example:                - "6"                - "9"              properties:                items:                  description: contains list of aliases you want to delete                  type: object              type: object      summary: Delete sync job  /api/v1/delete/tls-policy-map:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - tls_policy_maps                        - delete                        - id:                            - "1"                        - null                      msg:                        - tls_policy_map_entry_deleted                        - "1"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Outgoing TLS Policy Map Overrides      description: >-        Using this endpoint you can delete a TLS Policy Map, for this you have        to know its ID. You can get the ID using the GET method.      operationId: Delete TLS Policy Map      requestBody:        content:          application/json:            schema:              example:                - "3"              properties:                items:                  description: contains list of tls policy maps you want to delete                  type: object              type: object      summary: Delete TLS Policy Map  /api/v1/delete/transport:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - transport                        - delete                        - id:                            - "1"                      msg:                        - relayhost_removed                        - "1"                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Routing      description: >-        Using this endpoint you can delete a Transport Maps, for this you have        to know its ID. You can get the ID using the GET method.      operationId: Delete Transport Maps      requestBody:        content:          application/json:            schema:              example:                - "1"              properties:                items:                  description: contains list of transport maps you want to delete                  type: object              type: object      summary: Delete Transport Maps  "/api/v1/delete/mailbox/tag/{mailbox}":    post:      parameters:        - description: name of mailbox          in: path          name: mailbox          example: info@domain.tld          required: true          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - delete                        - tags_mailbox                        - tags:                          - tag1                          - tag2                          mailbox: info@domain.tld                        - null                      msg:                        - mailbox_modified                        - info@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: You can delete one or more mailbox tags.      operationId: Delete mailbox tags      requestBody:        content:          application/json:            schema:              example:                - tag1                - tag2              properties:                items:                  description: contains list of mailboxes you want to delete                  type: object              type: object      summary: Delete mailbox tags  "/api/v1/delete/domain/tag/{domain}":    post:      parameters:        - description: name of domain          in: path          name: domain          example: domain.tld          required: true          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - delete                        - tags_domain                        - tags:                          - tag1                          - tag2                          domain: domain.tld                        - null                      msg:                        - domain_modified                        - domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Domains      description: You can delete one or more domain tags.      operationId: Delete domain tags      requestBody:        content:          application/json:            schema:              example:                - tag1                - tag2              properties:                items:                  description: contains list of domains you want to delete                  type: object              type: object      summary: Delete domain tags  /api/v1/edit/alias:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - edit                        - alias                        - active: "1"                          address: alias@domain.tld                          goto: destination@domain.tld                          id:                            - "6"                          private_comment: private comment                          public_comment: public comment                        - null                      msg:                        - alias_modified                        - alias@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Aliases      description: >-        You can update one or more aliases per request. You can also send just        attributes you want to change      operationId: Update alias      requestBody:        content:          application/json:            schema:              example:                attr:                  active: "1"                  address: alias@domain.tld                  goto: destination@domain.tld                  private_comment: private comment                  public_comment: public comment                items: ["6"]              properties:                attr:                  properties:                    active:                      description: is alias active or not                      type: boolean                    address:                      description: 'alias address, for catchall use "@domain.tld"'                      type: string                    goto:                      description: "destination address, comma separated"                      type: string                    goto_ham:                      description: learn as ham                      type: boolean                    goto_null:                      description: silently ignore                      type: boolean                    goto_spam:                      description: learn as spam                      type: boolean                    private_comment:                      type: string                    public_comment:                      type: string                    sogo_visible:                      description: toggle visibility as selectable sender in SOGo                      type: boolean                  type: object                items:                  description: contains list of aliases you want update                  type: object              type: object      summary: Update alias  /api/v1/edit/domain:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              schema:                type: array                items:                  type: object                  properties:                    log:                      type: array                      description: contains request object                      items: {}                    msg:                      type: array                      items: {}                    type:                      enum:                        - success                        - danger                        - error                      type: string          description: OK          headers: {}      tags:        - Domains      description: >-        You can update one or more domains per request. You can also send just        attributes you want to change.        Example: You can add domain names to items list and in attr object just        include `"active": "0"` to deactivate domains.      operationId: Update domain      requestBody:        content:          application/json:            schema:              example:                attr:                  active: "1"                  aliases: "400"                  backupmx: "1"                  defquota: "3072"                  description: domain description                  gal: "1"                  mailboxes: "10"                  maxquota: "10240"                  quota: "10240"                  relay_all_recipients: "0"                  relayhost: "2"                  tags: ["tag3", "tag4"]                items: domain.tld              properties:                attr:                  properties:                    active:                      description: is domain active or not                      type: boolean                    aliases:                      description: limit count of aliases associated with this domain                      type: number                    backupmx:                      description: relay domain or not                      type: boolean                    defquota:                      description: predefined mailbox quota in `add mailbox` form                      type: number                    description:                      description: Description of domain                      type: string                    gal:                      description: >-                        is domain global address list active or not, it enables                        shared contacts accross domain in SOGo webmail                      type: boolean                    mailboxes:                      description: limit count of mailboxes associated with this domain                      type: number                    maxquota:                      description: maximum quota per mailbox                      type: number                    quota:                      description: maximum quota for this domain (for all mailboxes in sum)                      type: number                    relay_all_recipients:                      description: >-                        if not, them you have to create "dummy" mailbox for each                        address to relay                      type: boolean                    relay_unknown_only:                      description: Relay non-existing mailboxes only. Existing mailboxes will be delivered locally.                      type: boolean                    relayhost:                      description: id of relayhost                      type: number                    rl_frame:                      enum:                        - s                        - m                        - h                        - d                      type: string                    rl_value:                      description: rate limit value                      type: number                    tags:                      description: tags for this Domain                      type: array                      items:                        type: string                  type: object                items:                  description: contains list of domain names you want update                  type: array                  items:                    type: string              type: object      summary: Update domain  /api/v1/edit/domain/footer:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                  - log:                      - mailbox                      - edit                      - domain_wide_footer                      - domains:                          - mailcow.tld                        html: "<br>foo {= foo =}"                        plain: "<foo {= foo =}"                        mbox_exclude:                          - moo@mailcow.tld                      - null                    msg:                      - domain_footer_modified                      - mailcow.tld                    type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Domains      description: >-        You can update the footer of one or more domains per request.      operationId: Update domain wide footer      requestBody:        content:          application/json:            schema:              example:                attr:                  html: "<br>foo {= foo =}"                  plain: "foo {= foo =}"                  mbox_exclude:                    - moo@mailcow.tld                items: mailcow.tld              properties:                attr:                  properties:                    html:                      description: Footer text in HTML format                      type: string                    plain:                      description: Footer text in PLAIN text format                      type: string                    mbox_exclude:                      description: Array of mailboxes to exclude from domain wide footer                      type: object                  type: object                items:                  description: contains a list of domain names where you want to update the footer                  type: array                  items:                    type: string              type: object      summary: Update domain wide footer  /api/v1/edit/fail2ban:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            "*/*":              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Fail2Ban      description: >-        Using this endpoint you can edit the Fail2Ban config and black or        whitelist new ips.      operationId: Edit Fail2Ban      requestBody:        content:          application/json:            schema:              example:                attr:                  ban_time: "86400"                  ban_time_increment: "1"                  blacklist: "10.100.6.5/32,10.100.8.4/32"                  max_attempts: "5"                  max_ban_time: "86400"                  netban_ipv4: "24"                  netban_ipv6: "64"                  retry_window: "600"                  whitelist: mailcow.tld                items: none              properties:                attr:                  description: array containing the fail2ban settings                  properties:                    backlist:                      description: the backlisted ips or hostnames separated by comma                      type: string                    ban_time:                      description: the time an ip should be banned                      type: number                    ban_time_increment:                      description: if the time of the ban should increase each time                      type: boolean                    max_attempts:                      description: the maximum numbe of wrong logins before a ip is banned                      type: number                    max_ban_time:                      description: the maximum time an ip should be banned                      type: number                    netban_ipv4:                      description: the networks mask to ban for ipv4                      type: number                    netban_ipv6:                      description: the networks mask to ban for ipv6                      type: number                    retry_window:                      description: >-                        the maximum time in which a ip as to login with false                        credentials to be banned                      type: number                    whitelist:                      description: whitelisted ips or hostnames sepereated by comma                      type: string                  type: object                items:                  description: has to be none              type: object      summary: Edit Fail2Ban  /api/v1/edit/mailbox:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - mailbox                        - edit                        - mailbox                        - active: "1"                          force_pw_update: "0"                          name: Full name                          password: "*"                          password2: "*"                          quota: "3072"                          sender_acl:                            - default                            - info@domain2.tld                            - domain3.tld                            - "*"                          sogo_access: "1"                          username:                            - info@domain.tld                          tags: ["tag3", "tag4"]                        - null                      msg:                        - mailbox_modified                        - info@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: >-        You can update one or more mailboxes per request. You can also send just        attributes you want to change      operationId: Update mailbox      requestBody:        content:          application/json:            schema:              example:                attr:                  active: "1"                  force_pw_update: "0"                  name: Full name                  authsource: mailcow                  password: ""                  password2: ""                  quota: "3072"                  sender_acl:                    - default                    - info@domain2.tld                    - domain3.tld                    - "*"                  sogo_access: "1"                  tags: ["tag3", "tag4"]                items:                  - info@domain.tld              properties:                attr:                  properties:                    active:                      description: is mailbox active or not                      type: boolean                    force_pw_update:                      description: force user to change password on next login                      type: boolean                    name:                      description: Full name of the mailbox user                      type: string                    authsource:                      description: Specifies the authentication source for the mailbox.                      type: string                      enum: [mailcow, ldap, keycloak, generic-oidc]                    password2:                      description: new mailbox password for confirmation                      type: string                    password:                      description: new mailbox password when using `mailcow` as the authentication source.                      type: string                    quota:                      description: mailbox quota                      type: number                    sender_acl:                      description: list of allowed send from addresses                      type: object                    sogo_access:                      description: is access to SOGo webmail active or not                      type: boolean                  type: object                items:                  description: contains list of mailboxes you want update                  type: object              type: object      summary: Update mailbox  /api/v1/edit/mailbox/custom-attribute:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                  - log:                      - mailbox                      - edit                      - mailbox_custom_attribute                      - mailboxes:                          - moo@mailcow.tld                        attribute:                          - role                          - foo                        value:                          - cow                          - bar                      - null                    msg:                      - mailbox_modified                      - moo@mailcow.tld                    type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: >-        You can update custom attributes of one or more mailboxes per request.      operationId: Update mailbox custom attributes      requestBody:        content:          application/json:            schema:              example:                attr:                  attribute:                    - role                    - foo                  value:                    - cow                    - bar                items:                  - moo@mailcow.tld              properties:                attr:                  properties:                    attribute:                      description: Array of attribute keys                      type: object                    value:                      description: Array of attribute values                      type: object                  type: object                items:                  description: contains list of mailboxes you want update                  type: object              type: object      summary: Update mailbox custom attributes  /api/v1/edit/mailq:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    msg: Task completed                    type: success          description: OK          headers: {}      tags:        - Queue Manager      description: >-        Using this API you can flush the current mail queue. This will try to        deliver all mails currently in it.        This API uses the command: `postqueue -f`      operationId: Flush Queue      requestBody:        content:          application/json:            schema:              example:                action: flush              properties:                action:                  description: use flush to flush the mail queue                  type: string              type: object      summary: Flush Queue  /api/v1/edit/pushover:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - pushover                        - edit                        - active: "0"                          evaluate_x_prio: "0"                          key: 21e8918e1jksdjcpis712                          only_x_prio: "0"                          sound: "pushover"                          senders: ""                          senders_regex: ""                          text: ""                          title: Mail                          token: 9023e2ohcwed27d1idu2                          username:                            - info@domain.tld                      msg: pushover_settings_edited                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: >-        Using this endpoint it is possible to update the pushover settings for        mailboxes      operationId: Update Pushover settings      requestBody:        content:          application/json:            schema:              example:                attr:                  active: "0"                  evaluate_x_prio: "0"                  key: 21e8918e1jksdjcpis712                  only_x_prio: "0"                  sound: "pushover"                  senders: ""                  senders_regex: ""                  text: ""                  title: Mail                  token: 9023e2ohcwed27d1idu2                items: info@domain.tld              properties:                attr:                  properties:                    active:                      description: Enables pushover 1 disable pushover 0                      type: number                    evaluate_x_prio:                      description: Send the Push with High priority                      type: number                    key:                      description: Pushover key                      type: string                    only_x_prio:                      description: Only send push for prio mails                      type: number                    sound:                      description: Set notification sound                      type: string                    senders:                      description: Only send push for emails from these senders                      type: string                    senders_regex:                      description: Regex to match senders for which a push will be send                      type: string                    text:                      description: Custom push noficiation text                      type: string                    title:                      description: Push title                      type: string                    token:                      description: Pushover token                      type: string                  type: object                items:                  description: contains list of mailboxes you want to delete                  type: object              type: object      summary: Update Pushover settings  /api/v1/edit/quarantine_notification:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          description: OK          headers: {}      tags:        - Mailboxes      description: You can update one or more mailboxes per request.      operationId: Quarantine Notifications      requestBody:        content:          application/json:            schema:              example:                attr:                  quarantine_notification: hourly                items:                  anyOf:                    - mailbox1@domain.tld                    - mailbox2@domain.tld              properties:                attr:                  properties:                    quarantine_notification:                      description: recurrence                      enum:                        - hourly                        - daily                        - weekly                        - never                      type: string                  type: object                items:                  description: >-                    contains list of mailboxes you want set qurantine                    notifications                  type: object              type: object      summary: Quarantine Notifications  /api/v1/edit/syncjob:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    log:                      - entity                      - action                      - object                    msg:                      - message                      - entity name                    type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Sync jobs      description: >-        You can update one or more sync jobs per request. You can also send just        attributes you want to change.      operationId: Update sync job      requestBody:        content:          application/json:            schema:              example:                attr:                  active: "1"                  automap: "1"                  custom_params: ""                  delete1: "0"                  delete2: "0"                  delete2duplicates: "1"                  enc1: SSL                  exclude: (?i)spam|(?i)junk                  host1: imap.server.tld                  maxage: "0"                  maxbytespersecond: "0"                  mins_interval: "20"                  password1: supersecret                  port1: "993"                  skipcrossduplicates: "0"                  subfolder2: External                  subscribeall: "1"                  timeout1: "600"                  timeout2: "600"                  user1: username                items: "1"              properties:                attr:                  properties:                    active:                      description: Is sync job active                      type: boolean                    automap:                      description: >-                        Try to automap folders ("Sent items", "Sent" => "Sent"                        etc.)                      type: boolean                    custom_params:                      description: Custom parameters passed to imapsync command                      type: string                    delete1:                      description: Delete from source when completed                      type: boolean                    delete2:                      description: Delete messages on destination that are not on source                      type: boolean                    delete2duplicates:                      description: Delete duplicates on destination                      type: boolean                    enc1:                      description: Encryption                      enum:                        - TLS                        - SSL                        - PLAIN                      type: string                    exclude:                      description: Exclude objects (regex)                      type: string                    host1:                      description: Hostname                      type: string                    maxage:                      description: >-                        Maximum age of messages in days that will be polled from                        remote (0 = ignore age)                      type: number                    maxbytespersecond:                      description: Max. bytes per second (0 = unlimited)                      type: number                    mins_interval:                      description: Interval (min)                      type: number                    password1:                      description: Password                      type: string                    port1:                      description: Port                      type: string                    skipcrossduplicates:                      description: >-                        Skip duplicate messages across folders (first come,                        first serve)                      type: boolean                    subfolder2:                      description: >-                        Sync into subfolder on destination (empty = do not use                        subfolder)                      type: string                    subscribeall:                      description: Subscribe all folders                      type: boolean                    timeout1:                      description: Timeout for connection to remote host                      type: number                    timeout2:                      description: Timeout for connection to local host                      type: number                    user1:                      description: Username                      type: string                  type: object                items:                  description: contains list of aliases you want update                  type: object              type: object      summary: Update sync job  /api/v1/edit/user-acl:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - log:                        - acl                        - edit                        - user                        - user_acl:                            - spam_alias                            - tls_policy                            - spam_score                            - spam_policy                            - delimiter_action                            - syncjobs                            - eas_reset                            - quarantine                            - sogo_profile_reset                            - quarantine_attachments                            - quarantine_notification                            - app_passwds                            - pushover                          username:                            - info@domain.tld                      msg:                        - acl_saved                        - info@domain.tld                      type: success              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: Using this endpoints its possible to update the ACL's for mailboxes      operationId: Update mailbox ACL      requestBody:        content:          application/json:            schema:              example:                attr:                  user_acl:                    - spam_alias                    - tls_policy                    - spam_score                    - spam_policy                    - delimiter_action                    - syncjobs                    - eas_reset                    - quarantine                    - sogo_profile_reset                    - quarantine_attachments                    - quarantine_notification                    - app_passwds                    - pushover                items: info@domain.tld              properties:                attr:                  properties:                    user_acl:                      description: contains a list of active user acls                      type: object                  type: object                items:                  description: contains list of mailboxes you want to delete                  type: object              type: object      summary: Update mailbox ACL  "/api/v1/get/alias/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - "1"              - "2"              - "5"              - "10"            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      address: alias@domain.tld                      created: "2019-04-04 19:29:49"                      domain: domain.tld                      goto: destination@domain.tld                      id: 6                      in_primary_domain: ""                      is_catch_all: 0                      modified: null                      private_comment: null                      public_comment: null                    - active: "1"                      address: "@domain.tld"                      created: "2019-04-27 13:42:39"                      domain: domain.tld                      goto: destination@domain.tld                      id: 10                      in_primary_domain: ""                      is_catch_all: 1                      modified: null                      private_comment: null                      public_comment: null          description: OK          headers: {}      tags:        - Aliases      description: You can list mailbox aliases existing in system.      operationId: Get aliases      summary: Get aliases  "/api/v1/get/time_limited_aliases/{mailbox}":    get:      parameters:        - description: mailbox you want to get aliasses from          example: domain.tld          in: path          schema:            type: string          name: mailbox          required: true        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - address: alias@domain.tld                      goto: destination@domain.tld                      validity: 1668251246                      created: "2021-11-12 12:07:26"                      modified: null          description: OK          headers: {}      tags:        - Aliases      description: You can list time limited mailbox aliases existing in system.      operationId: Get time limited aliases      summary: Get time limited aliases  "/api/v1/get/app-passwd/all/{mailbox}":    get:      parameters:        - description: mailbox of entry you want to get          example: hello@mailcow.email          in: path          name: mailbox          required: true          schema:            enum:              - hello@mailcow.email            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      created: "2019-12-21 16:04:55"                      domain: mailcow.email                      id: 2                      mailbox: hello@mailcow.email                      modified: null                      name: emclient          description: OK          headers: {}      tags:        - App Passwords      description: >-        Using this endpoint you can get all app passwords from a specific        mailbox.      operationId: Get App Password      summary: Get App Password  "/api/v1/get/bcc/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - "1"              - "2"              - "5"              - "10"            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      bcc_dest: bcc@awesomecow.tld                      created: "2019-10-02 21:44:34"                      domain: mailcow.tld                      id: 3                      local_dest: "@mailcow.tld"                      modified: null                      type: sender          description: OK          headers: {}      tags:        - Address Rewriting      description: Using this endpoint you can get all BCC maps.      operationId: Get BCC Map      summary: Get BCC Map  "/api/v1/get/dkim/{domain}":    get:      parameters:        - description: name of domain          in: path          name: domain          required: true          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    dkim_selector: dkim                    dkim_txt: >-                      v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA21tUSjyasQy/hJmVjPnlRGfzx6TPhYj8mXY9DVOzSAE64Gddw/GnE/GcCR6WXNT23u9q4zPnz1IPoNt5kFOps8vg/iNqrcH++494noaZuYyFPPFnebkfryO4EvEyxC/c66qts+gnOUml+M8uv5WObBJld2gG12jLwFM0263J/N6J8LuUsaXOB2uCIfx8Nf4zjuJ6Ieez2uyHNK5dXjDLfKA4mTr+EEK6W6e34M4KN1liWM6r9Oy5S1FlLrD42VpURxxBZtBiEtaJPEKSQuk6GQz8ihu7W20Yr53tyCdaORu8dhxXVUWVf+GjuuMEdAmQCjYkarXdYCrt56Psw703kwIDAQAB                    length: "2048"                    privkey: ""                    pubkey: >-                      MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA21tUSjyasQy/hJmVjPnlRGfzx6TPhYj8mXY9DVOzSAE64Gddw/GnE/GcCR6WXNT23u9q4zPnz1IPoNt5kFOps8vg/iNqrcH++494noaZuYyFPPFnebkfryO4EvEyxC/c66qts+gnOUml+M8uv5WObBJld2gG12jLwFM0263J/N6J8LuUsaXOB2uCIfx8Nf4zjuJ6Ieez2uyHNK5dXjDLfKA4mTr+EEK6W6e34M4KN1liWM6r9Oy5S1FlLrD42VpURxxBZtBiEtaJPEKSQuk6GQz8ihu7W20Yr53tyCdaORu8dhxXVUWVf+GjuuMEdAmQCjYkarXdYCrt56Psw703kwIDAQAB          description: OK          headers: {}      tags:        - DKIM      description: >-        Using this endpoint you can get the DKIM public key for a specific        domain.      operationId: Get DKIM Key      summary: Get DKIM Key  /api/v1/get/domain-admin/all:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      created: "2019-10-02 10:29:41"                      selected_domains:                        - mailcow.tld                      tfa_active: "0"                      unselected_domains:                        - awesomemailcow.de                        - mailcowisgreat.de                      username: testadmin          description: OK          headers: {}      tags:        - Domain admin      description: ""      operationId: Get Domain Admins      summary: Get Domain Admins  "/api/v1/get/domain/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - mailcow.tld            type: string        - description: comma seperated list of tags to filter by          example: "tag1,tag2"          in: query          name: tags          required: false          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      aliases_in_domain: 0                      aliases_left: 400                      backupmx: "0"                      bytes_total: "5076666944"                      def_new_mailbox_quota: 3221225472                      def_quota_for_mbox: 3221225472                      description: Some description                      domain_name: domain.tld                      gal: "0"                      max_new_mailbox_quota: 10737418240                      max_num_aliases_for_domain: 400                      max_num_mboxes_for_domain: 10                      max_quota_for_domain: 10737418240                      max_quota_for_mbox: 10737418240                      mboxes_in_domain: 0                      mboxes_left: 10                      msgs_total: "172440"                      quota_used_in_domain: "0"                      relay_all_recipients: "0"                      relayhost: "0"                      rl: false                      tags: ["tag1", "tag2"]                    - active: "1"                      aliases_in_domain: 0                      aliases_left: 400                      backupmx: "1"                      bytes_total: "5076666944"                      def_new_mailbox_quota: 3221225472                      def_quota_for_mbox: 3221225472                      description: domain description                      domain_name: domain2.tld                      gal: "0"                      max_new_mailbox_quota: 10737418240                      max_num_aliases_for_domain: 400                      max_num_mboxes_for_domain: 10                      max_quota_for_domain: 10737418240                      max_quota_for_mbox: 10737418240                      mboxes_in_domain: 0                      mboxes_left: 10                      msgs_total: "172440"                      quota_used_in_domain: "0"                      relay_all_recipients: "0"                      relayhost: "0"                      rl: false                      tags: ["tag3", "tag4"]          description: OK          headers: {}      tags:        - Domains      description: You can list all domains existing in system.      operationId: Get domains      summary: Get domains  /api/v1/get/fail2ban:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    ban_time: 604800                    ban_time_increment: 1                    blacklist: |-                      45.82.153.37/32                      92.118.38.52/32                    max_attempts: 1                    max_ban_time: 604800                    netban_ipv4: 32                    netban_ipv6: 128                    perm_bans:                      - 45.82.153.37/32                      - 92.118.38.52/32                    retry_window: 7200                    whitelist: 1.1.1.1          description: OK          headers: {}      tags:        - Fail2Ban      description: Gets the current Fail2Ban configuration.      operationId: Get Fail2Ban Config      summary: Get Fail2Ban Config  /api/v1/get/fwdhost/all:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - host: 5.1.76.202                      keep_spam: "yes"                      source: hosted.mailcow.de                    - host: "2a00:f820:417::202"                      keep_spam: "yes"                      source: hosted.mailcow.de          description: OK          headers: {}      tags:        - Fordwarding Hosts      description: You can list all Forwarding Hosts in your mailcow.      operationId: Get Forwarding Hosts      summary: Get Forwarding Hosts  "/api/v1/get/logs/acme/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - message: >-                        Certificate validation done, neither changed nor due for                        renewal, sleeping for another day.                      time: "1569927728"          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all ACME logs from issued Lets Enctypts        certificates.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get ACME logs      summary: Get ACME logs  "/api/v1/get/logs/api/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - data: ""                      method: GET                      remote: 1.1.1.1                      time: 1569939001                      uri: /api/v1/get/logs/api/2          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Api logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Api logs      summary: Get Api logs  "/api/v1/get/logs/autodiscover/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - service: activesync                      time: 1569684212                      ua: >-                        Microsoft Office/16.0 (Windows NT 6.2; MAPICPL                        16.0.11328; Pro)                      user: awesome@mailcow.de          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Autodiscover logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Autodiscover logs      summary: Get Autodiscover logs  "/api/v1/get/logs/dovecot/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - message: >-                        managesieve-login: Disconnected (no auth attempts in 0                        secs): user=<>, rip=172.22.1.3, lip=172.22.1.250                      priority: info                      program: dovecot                      time: "1569938740"          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Dovecot logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Dovecot logs      summary: Get Dovecot logs  "/api/v1/get/logs/netfilter/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - message: "Whitelist was changed, it has 1 entries"                      priority: info                      time: 1569754911                    - message: Add host/network 1.1.1.1/32 to blacklist                      priority: crit                      time: 1569754911          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Netfilter logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Netfilter logs      summary: Get Netfilter logs  "/api/v1/get/logs/postfix/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - message: "EF1711500458: removed"                      priority: info                      program: postfix/qmgr                      time: "1569937433"          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Postfix logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Postfix logs      summary: Get Postfix logs  "/api/v1/get/logs/ratelimited/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - from: awesome@mailcow.email                      header_from: '"Awesome" <awesome@mailcow.email>'                      header_subject: Mailcow is amazing                      ip: 172.22.1.248                      message_id: 6a-5d892500-7-240abd80@90879116                      qid: E3CF91500458                      rcpt: hello@mailcow.email                      rl_hash: RLsdz3tuabozgd4oacbdh8kc78                      rl_info: mailcow(RLsdz3tuabozgd4oacbdh8kc78)                      rl_name: mailcow                      time: 1569269003                      user: awesome@mailcow.email          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Ratelimit logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Ratelimit logs      summary: Get Ratelimit logs  "/api/v1/get/logs/rspamd-history/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Rspamd logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Rspamd logs      summary: Get Rspamd logs  "/api/v1/get/logs/sogo/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - message: >-                        [109]:                        mailcowdockerized_watchdog-mailcow_1.mailcowdockerized_mailcow-network                        "GET /SOGo.index/ HTTP/1.1" 200 2531/0 0.005 - - 0                      priority: notice                      program: sogod                      time: "1569938874"          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all SOGo logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get SOGo logs      summary: Get SOGo logs  "/api/v1/get/logs/watchdog/{count}":    get:      parameters:        - description: Number of logs to return          in: path          name: count          required: true          schema:            type: number        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - hpdiff: "0"                      hpnow: "1"                      hptotal: "1"                      lvl: "100"                      service: Fail2ban                      time: "1569938958"                    - hpdiff: "0"                      hpnow: "5"                      hptotal: "5"                      lvl: "100"                      service: Rspamd                      time: "1569938956"          description: OK          headers: {}      tags:        - Logs      description: >-        This Api endpoint lists all Watchdog logs.        Tip: You can limit how many logs you want to get by using `/<count>` at        the end of the api url.      operationId: Get Watchdog logs      summary: Get Watchdog logs  "/api/v1/get/mailbox/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - user@domain.tld            type: string        - description: comma seperated list of tags to filter by          example: "tag1,tag2"          in: query          name: tags          required: false          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      attributes:                        force_pw_update: "0"                        mailbox_format: "maildir:"                        quarantine_notification: never                        sogo_access: "1"                        tls_enforce_in: "0"                        tls_enforce_out: "0"                      domain: doman3.tld                      is_relayed: 0                      local_part: info                      max_new_quota: 10737418240                      messages: 0                      name: Full name                      percent_class: success                      percent_in_use: 0                      quota: 3221225472                      quota_used: 0                      rl: false                      spam_aliases: 0                      username: info@doman3.tld                      tags: ["tag1", "tag2"]          description: OK          headers: {}      tags:        - Mailboxes      description: You can list all mailboxes existing in system.      operationId: Get mailboxes      summary: Get mailboxes  /api/v1/get/mailq/all:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - arrival_time: 1570091234                      message_size: 1848                      queue_id: B98C6260CA1                      queue_name: incoming                      recipients:                        - recipient@awesomecow.tld                      sender: sender@mailcow.tld          description: OK          headers: {}      tags:        - Queue Manager      description: Get the current mail queue and everything it contains.      operationId: Get Queue      summary: Get Queue  "/api/v1/get/oauth2-client/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - "1"              - "2"              - "5"              - "10"            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - client_id: 17c76aaa88c0                      client_secret: 73fc668a88147e32a31ff80c                      grant_types: null                      id: 1                      redirect_uri: "https://mailcow.tld"                      scope: profile                      user_id: null          description: OK          headers: {}      tags:        - oAuth Clients      description: Using this endpoint you can get all oAuth clients.      operationId: Get oAuth Clients      summary: Get oAuth Clients  "/api/v1/get/policy_bl_domain/{domain}":    get:      parameters:        - description: name of domain          in: path          name: domain          required: true          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - object: domain.tld                      prefid: 2                      value: "*@baddomain.tld"          description: OK          headers: {}      tags:        - Domain antispam policies      description: You can list all blacklist policies per domain.      operationId: List blacklist domain policy      summary: List blacklist domain policy  "/api/v1/get/policy_wl_domain/{domain}":    get:      parameters:        - description: name of domain          in: path          name: domain          required: true          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - object: domain.tld                      prefid: 1                      value: "*@gooddomain.tld"          description: OK          headers: {}      tags:        - Domain antispam policies      description: You can list all whitelist policies per domain.      operationId: List whitelist domain policy      summary: List whitelist domain policy  /api/v1/get/quarantine/all:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    created: 1572688831                    id: 33                    notified: 1                    qid: 8224615004C1                    rcpt: admin@domain.tld                    score: 15.48                    sender: bounces@send.domain.tld                    subject: mailcow is awesome                    virus_flag: 0          description: OK          headers: {}      tags:        - Quarantine      description: Get all mails that are currently in Quarantine.      operationId: Get mails in Quarantine      summary: Get mails in Quarantine  "/api/v1/get/recipient_map/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - "1"              - "2"              - "5"              - "10"            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      created: "2019-10-02 22:06:29"                      id: 3                      modified: null                      recipient_map_new: target@mailcow.tld                      recipient_map_old: recipient@mailcow.tld          description: OK          headers: {}      tags:        - Address Rewriting      description: Using this endpoint you can get all recipient maps.      operationId: Get Recipient Map      summary: Get Recipient Map  "/api/v1/get/relayhost/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - "1"              - "2"              - "5"              - "10"            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      hostname: "mailcow.tld:25"                      id: 1                      password: supersecurepassword                      password_short: tes...                      used_by_domains: ""                      username: testuser          description: OK          headers: {}      tags:        - Routing      description: Using this endpoint you can get all Sender-Dependent Transports.      operationId: Get Sender-Dependent Transports      summary: Get Sender-Dependent Transports  /api/v1/get/resource/all:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      description: test                      domain: mailcow.tld                      kind: location                      local_part: test                      multiple_bookings: 0                      name: test@mailcow.tld          description: OK          headers: {}      tags:        - Resources      description: Using this endpoint you can get all Resources.      operationId: Get Resources      summary: Get Resources  "/api/v1/get/rl-mbox/{mailbox}":    get:      parameters:        - description: name of mailbox or all          in: path          name: mailbox          required: true          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - frame: s                      mailbox: leon@mailcow.tld                      value: "5"                    - frame: s                      mailbox: lisa@mailcow.tld                      value: "3"          description: OK          headers: {}      tags:        - Ratelimits      description: >-        Using this endpoint you can get the ratelimits for a certain mailbox.        You can use all for all mailboxes.      operationId: Get mailbox ratelimits      summary: Get mailbox ratelimits  "/api/v1/get/rl-domain/{domain}":    get:      parameters:        - description: name of domain or all          in: path          name: domain          required: true          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - frame: s                      domain: domain.tld                      value: "5"                    - frame: s                      mailbox: domain2.tld                      value: "3"          description: OK          headers: {}      tags:        - Ratelimits      description: >-        Using this endpoint you can get the ratelimits for a certain domains.        You can use all for all domain.      operationId: Get domain ratelimits      summary: Get domain ratelimits  /api/v1/edit/rl-mbox/:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - type: success                      log:                        - ratelimit                        - edit                        - mailbox                        - object:                            - info@domain.tld                          rl_value: "10"                          rl_frame: h                      msg:                        - rl_saved                        - info@domain.tld              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Ratelimits      description: >-        Using this endpoint you can edit the ratelimits for a certain mailbox.      operationId: Edit mailbox ratelimits      requestBody:        content:          application/json:            schema:              example:                attr:                  rl_value: "10"                  rl_frame: "h"                items:                  - info@domain.tld              properties:                attr:                  properties:                    rl_frame:                      description: contains the frame for the ratelimit h,s,m                      type: string                    rl_value:                      description: contains the rate for the ratelimit 10,20,50,1                      type: number                  type: object                items:                  description: contains list of mailboxes you want to edit the ratelimit of                  type: object              type: object      summary: Edit mailbox ratelimits  /api/v1/edit/rl-domain/:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - type: success                    - log:                        - ratelimit                        - edit                        - domain                        - object:                            - domain.tld                          rl_value: "50"                          rl_frame: "h"                      msg:                        - rl_saved                        - domain.tld              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Ratelimits      description: >-        Using this endpoint you can edit the ratelimits for a certain domains.      operationId: Edit domain ratelimits      requestBody:        content:          application/json:            schema:              example:                attr:                  rl_value: "10"                  rl_frame: "h"                items:                  - domain.tld              properties:                attr:                  properties:                    rl_frame:                      description: contains the frame for the ratelimit h,s,m                      type: string                    rl_value:                      description: contains the rate for the ratelimit 10,20,50,1                      type: number                  type: object                items:                  description: contains list of domains you want to edit the ratelimit of                  type: object              type: object      summary: Edit domain ratelimits  /api/v1/get/status/containers:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    acme-mailcow:                      container: acme-mailcow                      image: "mailcow/acme:1.63"                      started_at: "2019-12-22T21:00:08.270660275Z"                      state: running                      type: info                    clamd-mailcow:                      container: clamd-mailcow                      image: "mailcow/clamd:1.35"                      started_at: "2019-12-22T21:00:01.622856172Z"                      state: running                      type: info                    dockerapi-mailcow:                      container: dockerapi-mailcow                      image: "mailcow/dockerapi:1.36"                      started_at: "2019-12-22T20:59:59.984797808Z"                      state: running                      type: info                    dovecot-mailcow:                      container: dovecot-mailcow                      image: "mailcow/dovecot:1.104"                      started_at: "2019-12-22T21:00:08.988680259Z"                      state: running                      type: info                    ipv6nat-mailcow:                      container: ipv6nat-mailcow                      image: robbertkl/ipv6nat                      started_at: "2019-12-22T21:06:37.273225445Z"                      state: running                      type: info                    memcached-mailcow:                      container: memcached-mailcow                      image: "memcached:alpine"                      started_at: "2019-12-22T20:59:58.0907785Z"                      state: running                      type: info                    mysql-mailcow:                      container: mysql-mailcow                      image: "mariadb:10.3"                      started_at: "2019-12-22T21:00:02.201937528Z"                      state: running                      type: info                    netfilter-mailcow:                      container: netfilter-mailcow                      image: "mailcow/netfilter:1.31"                      started_at: "2019-12-22T21:00:09.851559297Z"                      state: running                      type: info                    nginx-mailcow:                      container: nginx-mailcow                      image: "nginx:mainline-alpine"                      started_at: "2019-12-22T21:00:12.9843038Z"                      state: running                      type: info                    olefy-mailcow:                      container: olefy-mailcow                      image: "mailcow/olefy:1.2"                      started_at: "2019-12-22T20:59:59.676259274Z"                      state: running                      type: info                    php-fpm-mailcow:                      container: php-fpm-mailcow                      image: "mailcow/phpfpm:1.55"                      started_at: "2019-12-22T21:00:00.955808957Z"                      state: running                      type: info                    postfix-mailcow:                      container: postfix-mailcow                      image: "mailcow/postfix:1.44"                      started_at: "2019-12-22T21:00:07.186717617Z"                      state: running                      type: info                    redis-mailcow:                      container: redis-mailcow                      image: "redis:5-alpine"                      started_at: "2019-12-22T20:59:56.827166834Z"                      state: running                      type: info                    rspamd-mailcow:                      container: rspamd-mailcow                      image: "mailcow/rspamd:1.56"                      started_at: "2019-12-22T21:00:12.456075355Z"                      state: running                      type: info                    sogo-mailcow:                      container: sogo-mailcow                      image: "mailcow/sogo:1.65"                      started_at: "2019-12-22T20:59:58.382274592Z"                      state: running                      type: info                    unbound-mailcow:                      container: unbound-mailcow                      image: "mailcow/unbound:1.10"                      started_at: "2019-12-22T20:59:58.760595825Z"                      state: running                      type: info                    watchdog-mailcow:                      container: watchdog-mailcow                      image: "mailcow/watchdog:1.65"                      started_at: "2019-12-22T20:59:56.028660382Z"                      state: running                      type: info          description: OK          headers: {}      tags:        - Status      description: >-        Using this endpoint you can get the status of all containers and when        hey where started and a few other details.      operationId: Get container status      summary: Get container status  /api/v1/get/status/vmail:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    disk: /dev/mapper/mail--vg-root                    total: 41G                    type: info                    used: 11G                    used_percent: 28%          description: OK          headers: {}      tags:        - Status      description: >-        Using this endpoint you can get the status of the vmail and the amount        of used storage.      operationId: Get vmail status      summary: Get vmail status  /api/v1/get/status/version:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    version: "2022-04"          description: OK          headers: {}      tags:        - Status      description: >-        Using this endpoint you can get the current running release of this        instance.      operationId: Get version status      summary: Get version status  /api/v1/get/syncjobs/all/no_log:    get:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      authmd51: 0                      authmech1: PLAIN                      automap: 1                      created: "2019-05-22 11:37:25"                      custom_params: ""                      delete1: 0                      delete2: 0                      delete2duplicates: 1                      domain2: ""                      enc1: TLS                      exclude: (?i)spam|(?i)junk                      host1: imap.server.tld                      id: 1                      is_running: 0                      last_run: "2019-05-22 11:40:02"                      log: ""                      maxage: 0                      maxbytespersecond: "0"                      mins_interval: "20"                      modified: "2019-05-22 11:40:02"                      port1: 993                      regextrans2: ""                      skipcrossduplicates: 0                      subfolder2: External                      subscribeall: 1                      timeout1: 600                      timeout2: 600                      user1: username                      user2: mailbox@domain.tld          description: OK          headers: {}      tags:        - Sync jobs      description: You can list all syn jobs existing in system.      operationId: Get sync jobs      summary: Get sync jobs  "/api/v1/get/tls-policy-map/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - "1"              - "2"              - "5"              - "10"            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - parameters: ""                      active: "1"                      created: "2019-10-03 08:42:12"                      dest: mailcow.tld                      id: 1                      modified: null                      policy: encrypt          description: OK          headers: {}      tags:        - Outgoing TLS Policy Map Overrides      description: Using this endpoint you can get all TLS policy map override maps.      operationId: Get TLS Policy Map      summary: Get TLS Policy Map  "/api/v1/get/transport/{id}":    get:      parameters:        - description: id of entry you want to get          example: all          in: path          name: id          required: true          schema:            enum:              - all              - "1"              - "2"              - "5"              - "10"            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      destination: example.org                      id: 1                      lookup_mx: "0"                      nexthop: "host:25"                      password: supersecurepw                      password_short: sup...                      username: testuser          description: OK          headers: {}      tags:        - Routing      description: Using this endpoint you can get all Transport Maps.      operationId: Get Transport Maps      summary: Get Transport Maps  /api/v1/edit/spam-score/:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - type: success                      log:                        - mailbox                        - edit                        - spam_score                        - username:                            - info@domain.tld                          spam_score: "8,15"                      msg:                        - mailbox_modified                        - info@domain.tld              schema:                properties:                  log:                    description: contains request object                    items: {}                    type: array                  msg:                    items: {}                    type: array                  type:                    enum:                      - success                      - danger                      - error                    type: string                type: object          description: OK          headers: {}      tags:        - Mailboxes      description: >-        Using this endpoint you can edit the spam filter score for a certain mailbox.      operationId: Edit mailbox spam filter score      requestBody:        content:          application/json:            schema:              example:                - items:                    - info@domain.tld                  attr:                    spam_score: "8,15"      summary: Edit mailbox spam filter score  "/api/v1/get/mailbox/all/{domain}":    get:      parameters:        - description: name of domain          in: path          name: domain          required: true          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - active: "1"                      attributes:                        force_pw_update: "0"                        mailbox_format: "maildir:"                        quarantine_notification: never                        sogo_access: "1"                        tls_enforce_in: "0"                        tls_enforce_out: "0"                      custom_attributes: {}                      domain: domain3.tld                      is_relayed: 0                      local_part: info                      max_new_quota: 10737418240                      messages: 0                      name: Full name                      percent_class: success                      percent_in_use: 0                      quota: 3221225472                      quota_used: 0                      rl: false                      spam_aliases: 0                      username: info@domain3.tld                      tags: ["tag1", "tag2"]          description: OK          headers: {}      tags:        - Mailboxes      description: You can list all mailboxes existing in system for a specific domain.      operationId: Get mailboxes of a domain      summary: Get mailboxes of a domain  /api/v1/edit/cors:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - type: "success"                      log: ["cors", "edit", {"allowed_origins": ["*", "mail.mailcow.tld"], "allowed_methods": ["POST", "GET", "DELETE", "PUT"]}]                      msg: "cors_headers_edited"          description: OK          headers: { }      tags:        - Cross-Origin Resource Sharing (CORS)      description: >-        This endpoint allows you to manage Cross-Origin Resource Sharing (CORS) settings for the API.        CORS is a security feature implemented by web browsers to prevent unauthorized cross-origin requests.        By editing the CORS settings, you can specify which domains and which methods are permitted to access the API resources from outside the mailcow domain.      operationId: Edit Cross-Origin Resource Sharing (CORS) settings      requestBody:        content:          application/json:            schema:              example:                attr:                  allowed_origins: ["*", "mail.mailcow.tld"]                  allowed_methods: ["POST", "GET", "DELETE", "PUT"]              properties:                attr:                  type: object                  properties:                    allowed_origins:                      type: array                      items:                        type: string                    allowed_methods:                      type: array                      items:                        type: string      summary: Edit Cross-Origin Resource Sharing (CORS) settings  "/api/v1/get/spam-score/{mailbox}":    get:      parameters:        - description: name of mailbox or empty for current user - admin user will retrieve the global spam filter score          in: path          name: mailbox          required: true          schema:            type: string        - description: e.g. api-key-string          example: api-key-string          in: header          name: X-API-Key          required: false          schema:            type: string      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    spam_score: "8,15"          description: OK          headers: {}      tags:        - Mailboxes      description: >-        Using this endpoint you can get the global spam filter score or the spam filter score of a certain mailbox.      operationId: Get mailbox or global spam filter score      summary: Get mailbox or global spam filter score  /api/v1/edit/identity-provider:    post:      responses:        "401":          $ref: "#/components/responses/Unauthorized"        "200":          content:            application/json:              examples:                response:                  value:                    - type: "success"                      log:                        - "identity_provider"                        - "edit"                        - authsource: "keycloak"                          server_url: "https://auth.mailcow.tld"                          realm: "mailcow"                          client_id: "mailcow_client"                          client_secret: "*"                          redirect_url: "https://mail.mailcow.tld"                          redirect_url_extra: ["https://extramail.mailcow.tld"]                          version: "26.1.3"                          default_template: "Default"                          mappers:                            - "small_mbox"                            - "medium_mbox"                          templates:                            - "small"                            - "medium"                          ignore_ssl_error: true                          mailpassword_flow: true                          periodic_sync: true                          import_users: true                          sync_interval: 30                      msg:                        - "object_modified"                        - ""          description: OK          headers: { }      tags:        - Identity Provider      description: >-        Configure an external Identity Provider to use as user authentication      operationId: Edit external Identity Provider settings      requestBody:        content:          application/json:            schema:              properties:                items:                  type: array                  default: ["identity-provider"]                attr:                  type: object                  properties:                    authsource:                      description: Specifies the type of the Identity Provider                      type: string                      enum: [ldap, keycloak, generic-oidc]                    server_url:                      description: The base URL of your Keycloak server. Required if `authsource` is keycloak.                      type: string                    realm:                      description: The Keycloak realm where the mailcow client is configured. Required if `authsource` is keycloak.                      type: string                    client_id:                      description: The Client ID assigned to mailcow Client in OIDC Provider. Required if `authsource` is keycloak or generic-oidc.                      type: string                    client_secret:                      description: The Client Secret assigned to mailcow Client in OIDC Provider. Required if `authsource` is keycloak or generic-oidc.                      type: string                    redirect_url:                      description: The redirect URL that OIDC Provider will use after authentication. Required if `authsource` is keycloak or generic-oidc.                      type: string                    redirect_url_extra:                      description: Additional redirect URLs that OIDC Provider can use after authentication if valid.                      type: array                    version:                      description: Specifies the Keycloak version. Required if `authsource` is keycloak.                      type: string                    default_template:                      description: (Optional) If no matching Attribute Mapping exists for a User, the default template will be used for creating the mailbox, but not for updating the mailbox.                      type: string                    mappers:                      description: (Optional) Attribute values used to match a mailbox template. Each element corresponds to the respective index in the templates array (i.e., the first element matches the first element of templates, the second matches the second, and so on).                      type: array                    templates:                      description: (Optional) Defines the mailbox templates to be assigned. Each element corresponds to the respective index in the `mappers` array.                      type: array                    ignore_ssl_error:                      description: If enabled, SSL certificate validation is bypassed                      type: boolean                      default: false                    mailpassword_flow:                      description: If enabled, mailcow will attempt to validate user credentials using the Keycloak Admin REST API instead of relying solely on the Authorization Code Flow.                      type: boolean                      default: false                    periodic_sync:                      description: If enabled, mailcow periodically performs a full sync of all users from Keycloak or LDAP.                      type: boolean                      default: false                    import_users:                      description: If enabled, new users are automatically imported from Keycloak or LDAP into mailcow.                      type: boolean                      default: false                    sync_interval:                      description: Defines the time interval (in minutes) for periodic synchronization and user imports.                      type: number                      default: 15                    host:                      description: The address of your LDAP server. You can provide a single hostname or a comma-separated list of hosts for fallback in case the primary server is unreachable. Required if `authsource` is ldap.                      type: string                    port:                      description: The port used to connect to the LDAP server. Required if `authsource` is ldap.                      type: string                    use_ssl:                      description: enable LDAPS connection. If Port is set to 389 it will be overriden to 636.                      type: boolean                      default: false                    use_tls:                      description: enable TLS connection. TLS is recommended over SSL. SSL Ports cannot be used.                      type: boolean                      default: false                    basedn:                      description: The Distinguished Name (DN) from which searches will be performed. Required if `authsource` is ldap.                      type: string                    username_field:                      description: The LDAP attribute used to identify users during authentication. Required if `authsource` is ldap.                      type: string                      default: mail                    filter:                      description: An optional LDAP search filter to refine which users can authenticate.                      type: string                    attribute_field:                      description: Specifies an LDAP attribute that holds a specific value which can be mapped to a mailbox template using the Attribute Mapping section. Required if `authsource` is ldap.                      type: string                    binddn:                      description: The Distinguished Name (DN) of the LDAP user that will be used to authenticate and perform LDAP searches. This account should have sufficient permissions to read the required attributes. Required if `authsource` is ldap.                      type: string                    bindpass:                      description: The password for the Bind DN user. It is required for authentication when connecting to the LDAP server. Required if `authsource` is ldap.                      type: string                    authorize_url:                      description: The OIDC provider's authorization server URL. Required if `authsource` is generic-oidc.                      type: string                    token_url:                      description: The OIDC provider's token server URL. Required if `authsource` is generic-oidc.                      type: string                    userinfo_url:                      description: The OIDC provider's user info server URL. Required if `authsource` is generic-oidc.                      type: string                    client_scopes:                      description: Specifies the OIDC scopes requested during authentication.                      type: string                      default: "openid profile email mailcow_template"            examples:              keycloak:                value:                  items:                    - "identity-provider"                  attr:                    authsource: "keycloak"                    server_url: "https://auth.mailcow.tld"                    realm: "mailcow"                    client_id: "mailcow_client"                    client_secret: "Xy7GdPqvJ9m3R8sT2LkVZ5W1oNbCaYQf"                    redirect_url: "https://mail.mailcow.tld"                    redirect_url_extra: ["https://extramail.mailcow.tld"]                    version: "26.1.3"                    default_template: "Default"                    mappers: ["small_mbox", "medium_mbox"]                    templates: ["small", "medium"]                    ignore_ssl_error: true                    mailpassword_flow: true                    periodic_sync: true                    import_users: true                    sync_interval: 30              ldap:                value:                  items:                    - "identity-provider"                  attr:                    authsource: "ldap"                    host: "127.0.0.1"                    port: "389"                    use_ssl: false                    use_tls: false                    ignore_ssl_error: false                    basedn: "DC=mailcow,DC=local"                    username_field: "mail"                    filter: "(memberOf:1.2.840.113556.1.4.1941:=DC=mailcow,DC=local)"                    attribute_field: "othermailbox"                    binddn: "CN=LDAP Read Only,CN=Users,DC=mailcow,DC=local"                    bindpass: "moohoo"                    default_template: "Default"                    mappers: ["small_mbox", "medium_mbox"]                    templates: ["small", "medium"]                    periodic_sync: true                    import_users: true                    sync_interval: 30              generic-oidc:                value:                  items:                    - "identity-provider"                  attr:                    authsource: "generic-oidc"                    authorize_url: "https://auth.mailcow.tld/application/o/authorize/"                    token_url: "https://auth.mailcow.tld/application/o/token/"                    userinfo_url: "https://auth.mailcow.tld/application/o/userinfo/"                    client_id: "mailcow_client"                    client_secret: "Xy7GdPqvJ9m3R8sT2LkVZ5W1oNbCaYQf"                    redirect_url: "https://mail.mailcow.tld"                    redirect_url_extra: ["https://extramail.mailcow.tld"]                    client_scopes: "openid profile email mailcow_template"                    default_template: "Default"                    mappers: ["small_mbox", "medium_mbox"]                    templates: ["small", "medium"]                    ignore_ssl_error: true      summary: Edit external Identity Providertags:  - name: Domains    description: You can create antispam whitelist and blacklist policies  - name: Domain antispam policies    description: You can edit the Domain Antispam policies  - name: Mailboxes    description: You can manage mailboxes  - name: Aliases    description: You can manage aliases  - name: Sync jobs    description: Using Syncjobs you can sync your mails with other email servers  - name: Fordwarding Hosts    description: Forwarding Hosts enable you to send mail using a relay  - name: Logs    description: Get all mailcow system logs  - name: Queue Manager    description: Manage the postfix mail queue  - name: Quarantine    description: Check what emails went to quarantine  - name: Fail2Ban    description: Manage the Netfilter fail2ban options  - name: DKIM    description: Manage DKIM keys  - name: Domain admin    description: Create or udpdate domain admin users  - name: Single Sign-On    description: Issue tokens for users  - name: Address Rewriting    description: Create BCC maps or recipient maps  - name: Outgoing TLS Policy Map Overrides    description: Force global TLS policys  - name: oAuth Clients    description: Use mailcow as a oAuth server  - name: Routing    description: Define your own email routes  - name: Resources    description: Manage ressources  - name: App Passwords    description: Create mailbox app passwords  - name: Status    description: Get the status of your cow  - name: Ratelimits    description: Edit domain ratelimits  - name: Cross-Origin Resource Sharing (CORS)    description: Manage Cross-Origin Resource Sharing (CORS) settings  - name: Identity Provider    description: Manage external Identity Provider settings
 |