12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237 |
- 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/edit/da-acl:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - type: success
- log:
- - acl
- - edit
- - testadmin
- - username:
- - testadmin
- da_acl:
- - syncjobs
- - quarantine
- - login_as
- - sogo_access
- - app_passwds
- - bcc_maps
- - pushover
- - filters
- - ratelimit
- - spam_policy
- - extend_sender_acl
- - unlimited_quota
- - protocol_access
- - smtp_ip_access
- - alias_domains
- - domain_desc
- msg:
- - acl_saved
- - testadmin
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Domain admin
- description: >-
- Using this endpoint you can edit the ACLs of a Domain Admin user. This user
- has full control over a domain, and can create new mailboxes and
- aliases.
- operationId: Edit Domain Admin ACL
- requestBody:
- content:
- application/json:
- schema:
- example:
- items:
- - testadmin
- attr:
- da_acl:
- - syncjobs
- - quarantine
- - login_as
- - sogo_access
- - app_passwds
- - bcc_maps
- - pushover
- - filters
- - ratelimit
- - spam_policy
- - extend_sender_acl
- - unlimited_quota
- - protocol_access
- - smtp_ip_access
- - alias_domains
- - domain_desc
- properties:
- items:
- description: contains the domain admin username you want to edit
- type: object
- attr:
- properties:
- da_acl:
- description: contains the list of acl names that are active for this user
- type: object
- type: object
- summary: Edit Domain Admin ACL
- /api/v1/edit/domain-admin:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - type: success
- log:
- - domain_admin
- - edit
- - username: testadmin
- active: ["0","1"]
- username_new: testadmin
- domains: ["domain.tld"]
- password: "*"
- password2: "*"
- msg:
- - domain_admin_modified
- - testadmin
- schema:
- properties:
- type:
- enum:
- - success
- - danger
- - error
- type: string
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type: object
- description: OK
- headers: {}
- tags:
- - Domain admin
- description: >-
- Using this endpoint you can edit a existing Domain Admin user. This user
- has full control over a domain, and can create new mailboxes and
- aliases.
- operationId: Edit Domain Admin user
- requestBody:
- content:
- application/json:
- schema:
- example:
- items:
- - testadmin
- attr:
- active:
- - '0'
- - '1'
- username_new: testadmin
- domains: ["domain.tld"]
- password: supersecurepassword
- password2: supersecurepassword
- properties:
- attr:
- properties:
- active:
- description: is the domain admin active or not
- type: boolean
- username_new:
- description: the username of the domain admin, change this to change the username
- type: string
- domains:
- description: a list of all domains managed by this domain admin
- type: array
- items:
- type: string
- password:
- description: the new domain admin user password
- type: string
- password2:
- description: the new domain admin user password for confirmation
- type: string
- type: object
- items:
- description: contains the domain admin username you want to edit
- type: object
- summary: Edit Domain Admin user
- /api/v1/add/domain-policy:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - policy
- - add
- - domain
- - domain: domain.tld
- object_from: "*@baddomain.tld"
- object_list: bl
- msg:
- - domain_modified
- - domain.tld
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Domain antispam policies
- description: >-
- You may create your own domain policy using this action. It takes a JSON
- object containing a domain informations.
- operationId: Create domain policy
- requestBody:
- content:
- application/json:
- schema:
- example:
- domain: domain.tld
- object_from: "*@baddomain.tld"
- object_list: bl
- properties:
- domain:
- description: domain name to which policy is associated to
- type: string
- object_from:
- description: exact address or use wildcard to match whole domain
- type: string
- object_list:
- enum:
- - wl
- - bl
- type: string
- type: object
- summary: Create domain policy
- /api/v1/add/fwdhost:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - fwdhost
- - add
- - filter_spam: "0"
- hostname: hosted.mailcow.de
- msg:
- - forwarding_host_added
- - "5.1.76.202, 2a00:f820:417::202"
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Fordwarding Hosts
- description: >-
- Add a new Forwarding host to mailcow. You can chose to enable or disable
- spam filtering of incoming emails by specifing `filter_spam` 0 =
- inactive, 1 = active.
- operationId: Add Forward Host
- requestBody:
- content:
- application/json:
- schema:
- example:
- filter_spam: "0"
- hostname: hosted.mailcow.de
- properties:
- filter_spam:
- description: "1 to enable spam filter, 0 to disable spam filter"
- type: number
- hostname:
- description: contains the hostname you want to add
- type: string
- type: object
- summary: Add Forward Host
- /api/v1/add/mailbox:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - mailbox
- - add
- - mailbox
- - active: "1"
- domain: domain.tld
- local_part: info
- name: Full name
- password: "*"
- password2: "*"
- quota: "3072"
- force_pw_update: "1"
- tls_enforce_in: "1"
- tls_enforce_out: "1"
- - 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"
- force_pw_update: "1"
- tls_enforce_in: "1"
- tls_enforce_out: "1"
- 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
- force_pw_update:
- description: forces the user to update its password on first login
- type: boolean
- tls_enforce_in:
- description: force inbound email tls encryption
- type: boolean
- tls_enforce_out:
- description: force oubound tmail tls encryption
- type: boolean
- type: object
- summary: Create mailbox
- /api/v1/add/oauth2-client:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - oauth2
- - add
- - client
- - redirect_uri: "https://mailcow.tld"
- msg: Added client access
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - oAuth Clients
- description: Using this endpoint you can create a oAuth clients.
- operationId: Create oAuth Client
- requestBody:
- content:
- application/json:
- schema:
- example:
- redirect_uri: "https://mailcow.tld"
- properties:
- redirect_uri:
- description: the uri where you should be redirected after oAuth
- type: string
- type: object
- summary: Create oAuth Client
- /api/v1/add/recipient_map:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - recipient_map
- - add
- - active: "1"
- recipient_map_new: target@mailcow.tld
- recipient_map_old: recipient@mailcow.tld
- - null
- msg:
- - recipient_map_entry_saved
- - recipient@mailcow.tld
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Address Rewriting
- description: >-
- Using this endpoint you can create a recipient map to forward all mails
- from one email address to another.
- operationId: Create Recipient Map
- requestBody:
- content:
- application/json:
- schema:
- example:
- active: "1"
- recipient_map_new: target@mailcow.tld
- recipient_map_old: recipient@mailcow.tld
- properties:
- active:
- description: 1 for a active user account 0 for a disabled user account
- type: number
- recipient_map_new:
- description: the email address that should receive the forwarded emails
- type: string
- recipient_map_old:
- description: the email address which emails should be forwarded
- type: string
- type: object
- summary: Create Recipient Map
- /api/v1/add/relayhost:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - relayhost
- - add
- - hostname: "mailcow.tld:25"
- password: supersecurepassword
- username: testuser
- msg:
- - relayhost_added
- - ""
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Routing
- description: Using this endpoint you can create Sender-Dependent Transports.
- operationId: Create Sender-Dependent Transports
- requestBody:
- content:
- application/json:
- schema:
- example:
- hostname: "mailcow.tld:25"
- password: supersecurepassword
- username: testuser
- properties:
- hostname:
- description: the hostname of the smtp server with port
- type: string
- password:
- description: the password for the smtp user
- type: string
- username:
- description: the username used to authenticate
- type: string
- type: object
- summary: Create Sender-Dependent Transports
- /api/v1/add/resource:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - mailbox
- - add
- - resource
- - active: "1"
- description: test
- domain: mailcow.tld
- kind: location
- multiple_bookings: "0"
- multiple_bookings_custom: ""
- multiple_bookings_select: "0"
- - null
- msg:
- - resource_added
- - mailcow.tld
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Resources
- description: Using this endpoint you can create Resources.
- operationId: Create Resources
- requestBody:
- content:
- application/json:
- schema:
- example:
- active: "1"
- description: test
- domain: mailcow.tld
- kind: location
- multiple_bookings: "0"
- multiple_bookings_custom: ""
- multiple_bookings_select: "0"
- properties:
- active:
- description: 1 for a active transport map 0 for a disabled transport map
- type: number
- description:
- description: a description of the resource
- type: string
- domain:
- description: the domain for which the resource should be
- type: string
- kind:
- description: the kind of recouse
- enum:
- - location
- - group
- - thing
- type: string
- multiple_bookings:
- enum:
- - "-1"
- - "1"
- - custom
- type: string
- multiple_bookings_custom:
- description: always empty
- type: number
- multiple_bookings_select:
- enum:
- - "-1"
- - "1"
- - custom
- type: string
- type: object
- summary: Create Resources
- /api/v1/add/syncjob:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - mailbox
- - add
- - syncjob
- - active: "1"
- automap: "1"
- custom_params: ""
- delete1: "0"
- delete2: "0"
- delete2duplicates: "1"
- enc1: SSL
- exclude: (?i)spam|(?i)junk
- host1: imap.server.tld
- maxage: "0"
- maxbytespersecond: "0"
- mins_interval: "20"
- password1: supersecret
- port1: 993
- skipcrossduplicates: "0"
- subfolder2: External
- subscribeall: "1"
- timeout1: "600"
- timeout2: "600"
- user1: username
- username: mailbox@domain.tld
- - null
- msg:
- - mailbox_modified
- - mailbox@domain.tld
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Sync jobs
- description: >-
- You can create new sync job using this action. It takes a JSON object
- containing a domain informations.
- operationId: Create sync job
- summary: Create sync job
- requestBody:
- content:
- application/json:
- schema:
- example:
- username: lisa@mailcow.tld
- host1: mail.mailcow.tld
- port1: "143"
- user1: demo@mailcow.tld
- password1: supersecretpw
- enc1: TLS
- mins_interval: "20"
- subfolder2: "/SyncIntoSubfolder"
- maxage: "0"
- maxbytespersecond: "0"
- timeout1: "600"
- timeout2: "600"
- exclude: "(?i)spam|(?i)junk"
- custom_params: "--dry"
- delete2duplicates: "1"
- delete1: "1"
- delete2: "0"
- automap: "1"
- skipcrossduplicates: "0"
- subscribeall: "0"
- active: "1"
- properties:
- parameters:
- description: your local mailcow mailbox
- type: string
- host1:
- description: the smtp server where mails should be synced from
- type: string
- port1:
- description: the smtp port of the target mail server
- type: string
- password:
- description: the password of the mailbox
- type: string
- enc1:
- description: the encryption method used to connect to the mailserver
- type: string
- mins_internal:
- description: the interval in which messages should be syned
- type: number
- subfolder2:
- description: sync into subfolder on destination (empty = do not use subfolder)
- type: string
- maxage:
- description: only sync messages up to this age in days
- type: number
- maxbytespersecond:
- description: max speed transfer limit for the sync
- type: number
- timeout1:
- description: timeout for connection to remote host
- type: number
- timeout2:
- description: timeout for connection to local host
- type: number
- exclude:
- description: exclude objects (regex)
- type: string
- custom_params:
- description: custom parameters
- type: string
- delete2duplicates:
- description: delete duplicates on destination (--delete2duplicates)
- type: boolean
- delete1:
- description: delete from source when completed (--delete1)
- type: boolean
- delete2:
- description: delete messages on destination that are not on source (--delete2)
- type: boolean
- automap:
- description: try to automap folders ("Sent items", "Sent" => "Sent" etc.) (--automap)
- type: boolean
- skipcrossduplicates:
- description: skip duplicate messages across folders (first come, first serve) (--skipcrossduplicates)
- type: boolean
- subscribeall:
- description: subscribe all folders (--subscribeall)
- type: boolean
- active:
- description: enables or disables the sync job
- type: boolean
- type: object
- /api/v1/add/tls-policy-map:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - log:
- - tls_policy_maps
- - add
- - parameters: ""
- active: "1"
- dest: mailcow.tld
- policy: encrypt
- - null
- msg:
- - tls_policy_map_entry_saved
- - mailcow.tld
- type: success
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Outgoing TLS Policy Map Overrides
- description: Using this endpoint you can create a TLS policy map override.
- operationId: Create TLS Policy Map
- requestBody:
- content:
- application/json:
- schema:
- example:
- parameters: ""
- active: "1"
- dest: mailcow.tld
- policy: encrypt
- properties:
- parameters:
- description: >-
- custom parameters you find out more about them
- [here](http://www.postfix.org/postconf.5.html#smtp_tls_policy_maps)
- type: string
- active:
- description: 1 for a active user account 0 for a disabled user account
- type: number
- dest:
- description: the target domain or email address
- type: string
- policy:
- description: the policy
- enum:
- - none
- - may
- - encrypt
- - dane
- - "'dane"
- - fingerprint
- - verify
- - secure
- type: string
- type: object
- summary: Create TLS Policy Map
- /api/v1/add/transport/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"
- 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: "1"
- address: alias@domain.tld
- created: "2019-04-04 19:29:49"
- domain: domain.tld
- goto: destination@domain.tld
- id: 6
- in_primary_domain: ""
- is_catch_all: 0
- modified: null
- private_comment: null
- public_comment: null
- - active: "1"
- address: "@domain.tld"
- created: "2019-04-27 13:42:39"
- domain: domain.tld
- goto: destination@domain.tld
- id: 10
- in_primary_domain: ""
- is_catch_all: 1
- modified: null
- private_comment: null
- public_comment: null
- description: OK
- headers: {}
- tags:
- - Aliases
- description: You can list mailbox aliases existing in system.
- operationId: Get aliases
- summary: Get aliases
- "/api/v1/get/app-passwd/all/{mailbox}":
- get:
- parameters:
- - description: mailbox of entry you want to get
- example: hello@mailcow.email
- in: path
- name: mailbox
- required: true
- schema:
- enum:
- - hello@mailcow.email
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - active: "1"
- created: "2019-12-21 16:04:55"
- domain: mailcow.email
- id: 2
- mailbox: hello@mailcow.email
- modified: null
- name: emclient
- description: OK
- headers: {}
- tags:
- - App Passwords
- description: >-
- Using this endpoint you can get all app passwords from a specific
- mailbox.
- operationId: Get App Password
- summary: Get App Password
- "/api/v1/get/bcc/{id}":
- get:
- parameters:
- - description: id of entry you want to get
- example: all
- in: path
- name: id
- required: true
- schema:
- enum:
- - all
- - "1"
- - "2"
- - "5"
- - "10"
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - active: "1"
- bcc_dest: bcc@awesomecow.tld
- created: "2019-10-02 21:44:34"
- domain: mailcow.tld
- id: 3
- local_dest: "@mailcow.tld"
- modified: null
- type: sender
- description: OK
- headers: {}
- tags:
- - Address Rewriting
- description: Using this endpoint you can get all BCC maps.
- operationId: Get BCC Map
- summary: Get BCC Map
- "/api/v1/get/dkim/{domain}":
- get:
- parameters:
- - description: name of domain
- in: path
- name: domain
- required: true
- schema:
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- dkim_selector: dkim
- dkim_txt: >-
- v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA21tUSjyasQy/hJmVjPnlRGfzx6TPhYj8mXY9DVOzSAE64Gddw/GnE/GcCR6WXNT23u9q4zPnz1IPoNt5kFOps8vg/iNqrcH++494noaZuYyFPPFnebkfryO4EvEyxC/c66qts+gnOUml+M8uv5WObBJld2gG12jLwFM0263J/N6J8LuUsaXOB2uCIfx8Nf4zjuJ6Ieez2uyHNK5dXjDLfKA4mTr+EEK6W6e34M4KN1liWM6r9Oy5S1FlLrD42VpURxxBZtBiEtaJPEKSQuk6GQz8ihu7W20Yr53tyCdaORu8dhxXVUWVf+GjuuMEdAmQCjYkarXdYCrt56Psw703kwIDAQAB
- length: "2048"
- privkey: ""
- pubkey: >-
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA21tUSjyasQy/hJmVjPnlRGfzx6TPhYj8mXY9DVOzSAE64Gddw/GnE/GcCR6WXNT23u9q4zPnz1IPoNt5kFOps8vg/iNqrcH++494noaZuYyFPPFnebkfryO4EvEyxC/c66qts+gnOUml+M8uv5WObBJld2gG12jLwFM0263J/N6J8LuUsaXOB2uCIfx8Nf4zjuJ6Ieez2uyHNK5dXjDLfKA4mTr+EEK6W6e34M4KN1liWM6r9Oy5S1FlLrD42VpURxxBZtBiEtaJPEKSQuk6GQz8ihu7W20Yr53tyCdaORu8dhxXVUWVf+GjuuMEdAmQCjYkarXdYCrt56Psw703kwIDAQAB
- description: OK
- headers: {}
- tags:
- - DKIM
- description: >-
- Using this endpoint you can get the DKIM public key for a specific
- domain.
- operationId: Get DKIM Key
- summary: Get DKIM Key
- /api/v1/get/domain-admin/all:
- get:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - active: "1"
- created: "2019-10-02 10:29:41"
- selected_domains:
- - mailcow.tld
- tfa_active: "0"
- unselected_domains:
- - awesomemailcow.de
- - mailcowisgreat.de
- username: testadmin
- description: OK
- headers: {}
- tags:
- - Domain admin
- description: ""
- operationId: Get Domain Admins
- summary: Get Domain Admins
- "/api/v1/get/domain/{id}":
- get:
- parameters:
- - description: id of entry you want to get
- example: all
- in: path
- name: id
- required: true
- schema:
- enum:
- - all
- - mailcow.tld
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - active: "1"
- aliases_in_domain: 0
- aliases_left: 400
- backupmx: "0"
- bytes_total: "5076666944"
- def_new_mailbox_quota: 3221225472
- def_quota_for_mbox: 3221225472
- description: Some description
- domain_name: domain.tld
- gal: "0"
- 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: "0"
- relayhost: "0"
- rl: false
- - active: "1"
- aliases_in_domain: 0
- aliases_left: 400
- backupmx: "1"
- bytes_total: "5076666944"
- def_new_mailbox_quota: 3221225472
- def_quota_for_mbox: 3221225472
- description: domain description
- domain_name: domain2.tld
- gal: "0"
- 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: "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: "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: "1"
- created: "2019-10-02 22:06:29"
- id: 3
- modified: null
- recipient_map_new: target@mailcow.tld
- recipient_map_old: recipient@mailcow.tld
- description: OK
- headers: {}
- tags:
- - Address Rewriting
- description: Using this endpoint you can get all recipient maps.
- operationId: Get Recipient Map
- summary: Get Recipient Map
- "/api/v1/get/relayhost/{id}":
- get:
- parameters:
- - description: id of entry you want to get
- example: all
- in: path
- name: id
- required: true
- schema:
- enum:
- - all
- - "1"
- - "2"
- - "5"
- - "10"
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - active: "1"
- hostname: "mailcow.tld:25"
- id: 1
- password: supersecurepassword
- password_short: tes...
- used_by_domains: ""
- username: testuser
- description: OK
- headers: {}
- tags:
- - Routing
- description: Using this endpoint you can get all Sender-Dependent Transports.
- operationId: Get Sender-Dependent Transports
- summary: Get Sender-Dependent Transports
- /api/v1/get/resource/all:
- get:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - active: "1"
- description: test
- domain: mailcow.tld
- kind: location
- local_part: test
- multiple_bookings: 0
- name: test@mailcow.tld
- description: OK
- headers: {}
- tags:
- - Resources
- description: Using this endpoint you can get all Resources.
- operationId: Get Resources
- summary: Get Resources
- "/api/v1/get/rl-mbox/{mailbox}":
- get:
- parameters:
- - description: name of mailbox or all
- in: path
- name: mailbox
- required: true
- schema:
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - frame: s
- mailbox: leon@mailcow.tld
- value: "5"
- - frame: s
- mailbox: lisa@mailcow.tld
- value: "3"
- description: OK
- headers: {}
- tags:
- - Ratelimits
- description: >-
- Using this endpoint you can get the ratelimits for a certain mailbox.
- You can use all for all mailboxes.
- operationId: Get mailbox ratelimits
- summary: Get mailbox ratelimits
- "/api/v1/get/rl-domain/{domain}":
- get:
- parameters:
- - description: name of domain or all
- in: path
- name: domain
- required: true
- schema:
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - frame: s
- domain: domain.tld
- value: "5"
- - frame: s
- mailbox: domain2.tld
- value: "3"
- description: OK
- headers: {}
- tags:
- - Ratelimits
- description: >-
- Using this endpoint you can get the ratelimits for a certain domains.
- You can use all for all domain.
- operationId: Get domain ratelimits
- summary: Get domain ratelimits
- /api/v1/edit/rl-mbox/:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - type: success
- log:
- - ratelimit
- - edit
- - mailbox
- - object:
- - info@domain.tld
- rl_value: "10"
- rl_frame: h
- msg:
- - rl_saved
- - info@domain.tld
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Ratelimits
- description: >-
- Using this endpoint you can edit the ratelimits for a certain mailbox.
- operationId: Edit mailbox ratelimits
- requestBody:
- content:
- application/json:
- schema:
- example:
- attr:
- rl_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: "1"
- authmd51: 0
- authmech1: PLAIN
- automap: 1
- created: "2019-05-22 11:37:25"
- custom_params: ""
- delete1: 0
- delete2: 0
- delete2duplicates: 1
- domain2: ""
- enc1: TLS
- exclude: (?i)spam|(?i)junk
- host1: imap.server.tld
- id: 1
- is_running: 0
- last_run: "2019-05-22 11:40:02"
- log: ""
- maxage: 0
- maxbytespersecond: "0"
- mins_interval: "20"
- modified: "2019-05-22 11:40:02"
- port1: 993
- regextrans2: ""
- skipcrossduplicates: 0
- subfolder2: External
- subscribeall: 1
- timeout1: 600
- timeout2: 600
- user1: username
- user2: mailbox@domain.tld
- description: OK
- headers: {}
- tags:
- - Sync jobs
- description: You can list all syn jobs existing in system.
- operationId: Get sync jobs
- summary: Get sync jobs
- "/api/v1/get/tls-policy-map/{id}":
- get:
- parameters:
- - description: id of entry you want to get
- example: all
- in: path
- name: id
- required: true
- schema:
- enum:
- - all
- - "1"
- - "2"
- - "5"
- - "10"
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - parameters: ""
- active: "1"
- created: "2019-10-03 08:42:12"
- dest: mailcow.tld
- id: 1
- modified: null
- policy: encrypt
- description: OK
- headers: {}
- tags:
- - Outgoing TLS Policy Map Overrides
- description: Using this endpoint you can get all TLS policy map override maps.
- operationId: Get TLS Policy Map
- summary: Get TLS Policy Map
- "/api/v1/get/transport/{id}":
- get:
- parameters:
- - description: id of entry you want to get
- example: all
- in: path
- name: id
- required: true
- schema:
- enum:
- - all
- - "1"
- - "2"
- - "5"
- - "10"
- type: string
- - description: e.g. api-key-string
- example: api-key-string
- in: header
- name: X-API-Key
- required: false
- schema:
- type: string
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - active: "1"
- destination: example.org
- id: 1
- lookup_mx: "0"
- nexthop: "host:25"
- password: supersecurepw
- password_short: sup...
- username: testuser
- description: OK
- headers: {}
- tags:
- - Routing
- description: Using this endpoint you can get all Transport Maps.
- operationId: Get Transport Maps
- summary: Get Transport Maps
- /api/v1/edit/spam-score/:
- post:
- responses:
- "401":
- $ref: "#/components/responses/Unauthorized"
- "200":
- content:
- application/json:
- examples:
- response:
- value:
- - type: success
- log:
- - mailbox
- - edit
- - spam_score
- - username:
- - info@domain.tld
- spam_score: "8,15"
- msg:
- - mailbox_modified
- - info@domain.tld
- schema:
- properties:
- log:
- description: contains request object
- items: {}
- type: array
- msg:
- items: {}
- type: array
- type:
- enum:
- - success
- - danger
- - error
- type: string
- type: object
- description: OK
- headers: {}
- tags:
- - Mailboxes
- description: >-
- Using this endpoint you can edit the spam filter score for a certain mailbox.
- operationId: Edit mailbox spam filter score
- requestBody:
- content:
- application/json:
- schema:
- example:
- - items:
- - info@domain.tld
- attr:
- spam_score: "8,15"
- summary: Edit mailbox spam filter score
- tags:
- - name: Domains
- description: You can create antispam whitelist and blacklist policies
- - name: Domain antispam policies
- description: You can edit the Domain Antispam policies
- - name: Mailboxes
- description: You can manage mailboxes
- - name: Aliases
- description: You can manage aliases
- - name: Sync jobs
- description: Using Syncjobs you can sync your mails with other email servers
- - name: Fordwarding Hosts
- description: Forwarding Hosts enable you to send mail using a relay
- - name: Logs
- description: Get all mailcow system logs
- - name: Queue Manager
- description: Manage the postfix mail queue
- - name: Quarantine
- description: Check what emails went to quarantine
- - name: Fail2Ban
- description: Manage the Netfilter fail2ban options
- - name: DKIM
- description: Manage DKIM keys
- - name: Domain admin
- description: Create or udpdate domain admin users
- - name: Address Rewriting
- description: Create BCC maps or recipient maps
- - name: Outgoing TLS Policy Map Overrides
- description: Force global TLS policys
- - name: oAuth Clients
- description: Use mailcow as a oAuth server
- - name: Routing
- description: Define your own email routes
- - name: Resources
- description: Manage ressources
- - name: App Passwords
- description: Create mailbox app passwords
- - name: Status
- description: Get the status of your cow
- - name: Ratelimits
- description: Edit domain ratelimits
|