123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968 |
- openapi: 3.0.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
- type: object
- summary: Create 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'
- app_name: emclient
- app_passwd: keyleudecticidechothistishownsan31
- app_passwd2: keyleudecticidechothistishownsan31
- username: hello@mailcow.email
- 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
- 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 `recipient`
- 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 or 2048)
- 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'
- backupmx: '0'
- defquota: '3072'
- description: some decsription
- domain: domain.tld
- lang: cs
- mailboxes: '10'
- maxquota: '10240'
- quota: '10240'
- relay_all_recipients: '0'
- rl_frame: s
- rl_value: '10'
- - null
- msg:
- - domain_added
- - 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 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
- lang: cs
- mailboxes: '10'
- maxquota: '10240'
- quota: '10240'
- relay_all_recipients: '0'
- rl_frame: s
- rl_value: '10'
- 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
- lang:
- description: language code
- enum:
- - sk
- - cs
- - de
- - en
- - es
- - fr
- - lv
- - nl
- - pl
- - pt
- - ru
- - it
- - ca
- type: string
- 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
- rl_frame:
- enum:
- - s
- - m
- - h
- type: string
- rl_value:
- description: rate limit value
- type: number
- 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/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'
- - 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
- password: atedismonsin
- password2: atedismonsin
- quota: '3072'
- 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
- password2:
- description: mailbox password for confirmation
- type: string
- pasword:
- description: mailbox password
- type: string
- quota:
- description: mailbox quota
- type: number
- 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
- /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/all:
- 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'
- - '9'
- 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:
- 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 domains.
- operationId: Delete domain
- requestBody:
- content:
- application/json:
- schema:
- example:
- - domain.tld
- - domain2.tld
- properties:
- items:
- description: contains list of domains you want to delete
- type: object
- type: object
- 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/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
- 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:
- '*/*':
- 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 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'
- lang: cs
- mailboxes: '10'
- maxquota: '10240'
- quota: '10240'
- relay_all_recipients: '0'
- relayhost: '2'
- 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
- lang:
- description: language code
- enum:
- - sk
- - cs
- - de
- - en
- - es
- - fr
- - lv
- - nl
- - pl
- - pt
- - ru
- - it
- - ca
- type: string
- 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
- relayhost:
- description: id of relayhost
- type: number
- type: object
- items:
- description: contains list of domain names you want update
- type: object
- type: object
- summary: Update domain
- /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'
- blacklist: '10.100.6.5/32,10.100.8.4/32'
- max_attempts: '5'
- 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 a ip should be banned
- type: number
- max_attempts:
- description: the maximum numbe of wrong logins before a ip is 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
- - 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
- password: ''
- password2: ''
- quota: '3072'
- sender_acl:
- - default
- - info@domain2.tld
- - domain3.tld
- - '*'
- sogo_access: '1'
- 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
- password2:
- description: new mailbox password for confirmation
- type: string
- pasword:
- description: new mailbox password
- 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/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'
- 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'
- 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
- 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: '✔'
- active_int: 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: '✔'
- active_int: 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/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: '✓'
- active_int: 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: '✓'
- active_int: 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: '✓'
- active_int: 1
- created: '2019-10-02 10:29:41'
- selected_domains:
- - mailcow.tld
- tfa_active: '✕'
- tfa_active_int: null
- 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: 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: '✔'
- active_int: 1
- aliases_in_domain: 0
- aliases_left: 400
- backupmx: '✘'
- backupmx_int: 0
- bytes_total: '5076666944'
- def_new_mailbox_quota: 3221225472
- def_quota_for_mbox: 3221225472
- description: Some description
- domain_name: domain.tld
- gal: '✘'
- gal_int: 0
- lang: en
- 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: '✘'
- relay_all_recipients_int: 0
- relayhost: '0'
- rl: false
- - active: '✔'
- active_int: 1
- aliases_in_domain: 0
- aliases_left: 400
- backupmx: '✔'
- backupmx_int: 1
- bytes_total: '5076666944'
- def_new_mailbox_quota: 3221225472
- def_quota_for_mbox: 3221225472
- description: domain description
- domain_name: domain2.tld
- gal: '✘'
- gal_int: 0
- lang: cs
- 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: '✘'
- relay_all_recipients_int: 0
- relayhost: '0'
- rl: false
- 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
- blacklist: |-
- 45.82.153.37/32
- 92.118.38.52/32
- max_attempts: 1
- 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: 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: '✔'
- active_int: 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
- 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: '✓'
- active_int: 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: '✓'
- active_int: 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: '✓'
- active_int: 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_vlaue: "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_vlaue:
- 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_vlaue: "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_vlaue:
- 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
- solr-mailcow:
- container: solr-mailcow
- image: 'mailcow/solr:1.7'
- started_at: '2019-12-22T20:59:59.635413798Z'
- 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/solr:
- get:
- responses:
- '401':
- $ref: '#/components/responses/Unauthorized'
- '200':
- content:
- application/json:
- examples:
- response:
- value:
- solr_documents: null
- solr_enabled: false
- solr_size: null
- 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 solr status
- summary: Get solr 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/syncjobs/all/no_log:
- get:
- responses:
- '401':
- $ref: '#/components/responses/Unauthorized'
- '200':
- content:
- application/json:
- examples:
- response:
- value:
- - active: '✓'
- active_int: 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: '✓'
- active_int: 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: '✓'
- active_int: 1
- destination: example.org
- id: 1
- lookup_mx: '✕'
- lookup_mx_int: 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
- 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 sysmte logs
- - name: Queue Manager
- description: Manage the postfix mailque
- - 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: Address Rewriting
- description: Create BBC 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
|