123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096 |
- openapi: 3.1.0
- info:
- 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
- - msg
- security:
- - 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 Provider
- tags:
- - 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
|