This repository has no description
Something went wrong. Try again.
631 kB · 16360 lines
JSON
at main
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361{ "openapi": "3.0.3", "info": { "title": "Fluxer API", "version": "1.0.0", "description": "API for Fluxer, a free and open source instant messaging and VoIP chat app built for friends, groups, and communities.", "contact": {"name": "Fluxer Platform AB", "email": "support@fluxer.app"}, "license": {"name": "AGPL-3.0", "url": "https://www.gnu.org/licenses/agpl-3.0.html"} }, "servers": [{"url": "https://api.fluxer.app/v1", "description": "Production API"}], "paths": { "/admin/api-keys": { "post": { "operationId": "create_admin_api_key", "summary": "Create admin API key", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateAdminApiKeyResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Generates a new API key for administrative operations. The key is returned only once at creation time. Includes expiration settings and access control lists (ACLs) to limit the key's permissions.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateAdminApiKeyRequest"}}} } }, "get": { "operationId": "list_admin_api_keys", "summary": "List admin API keys", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": {"type": "array", "items": {"$ref": "#/components/schemas/ListAdminApiKeyResponse"}} } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve all API keys created by the authenticated admin. Returns metadata including creation time, last used time, and assigned permissions. The actual key material is not returned.", "security": [{"adminApiKey": []}] } }, "/admin/api-keys/{keyId}": { "delete": { "operationId": "delete_admin_api_key", "summary": "Delete admin API key", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteApiKeyResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Revokes an API key, immediately invalidating it for all future operations. This action cannot be undone.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "keyId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The keyId"} ] } }, "/admin/applications/list-by-guild": { "post": { "operationId": "admin_list_guild_applications", "summary": "List applications installed in a guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildApplicationsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists OAuth2 applications whose bot users are members of a guild. Requires APPLICATION_LOOKUP or APPLICATION_LIST_BY_OWNER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildApplicationsRequest"}}} } } }, "/admin/applications/list-by-owner": { "post": { "operationId": "admin_list_user_applications", "summary": "List applications owned by a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserApplicationsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all applications (OAuth2 clients and bots) owned by a specific user. Requires APPLICATION_LIST_BY_OWNER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserApplicationsRequest"}}} } } }, "/admin/applications/lookup": { "post": { "operationId": "lookup_application", "summary": "Look up application", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves complete application details including ownership, bot user, OAuth2 redirect URIs, and credential status. Requires APPLICATION_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupApplicationRequest"}}} } } }, "/admin/applications/transfer-ownership": { "post": { "operationId": "transfer_application_ownership", "summary": "Transfer application ownership", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ApplicationUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Transfers application ownership to another user. Used when owner is inactive or for administrative recovery. Logged to audit log. Requires APPLICATION_TRANSFER_OWNERSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/TransferApplicationOwnershipRequest"}} } } } }, "/admin/archives/guild": { "post": { "operationId": "trigger_guild_archive", "summary": "Trigger guild archive", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminArchiveResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Initiates a data export for a guild (server). Creates an archive containing all guild data including channels, messages, members, roles, and settings.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerGuildArchiveRequest"}}} } } }, "/admin/archives/list": { "post": { "operationId": "list_archives", "summary": "List archives", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListArchivesResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query and filter created archives by type (user or guild), subject ID, requestor, and expiration status. Admins with limited ACLs see only archives matching their permissions.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListArchivesRequest"}}} } } }, "/admin/archives/user": { "post": { "operationId": "trigger_user_archive", "summary": "Trigger user archive", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminArchiveResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Initiates a data export for a user. Creates an archive containing all the user's data (messages, server memberships, preferences, etc.) for export or compliance purposes.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TriggerUserArchiveRequest"}}} } } }, "/admin/archives/{subjectType}/{subjectId}/{archiveId}": { "get": { "operationId": "get_archive_details", "summary": "Get archive details", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetArchiveResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve metadata for a specific archive including its status, creation time, expiration, and file location. Does not return the archive contents themselves.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "subjectType", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectType" }, { "name": "subjectId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectId" }, { "name": "archiveId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The archiveId" } ] } }, "/admin/archives/{subjectType}/{subjectId}/{archiveId}/download": { "get": { "operationId": "get_archive_download_url", "summary": "Get archive download URL", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DownloadUrlResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Generate a time-limited download link to the archive file. The URL provides direct access to download the compressed archive contents.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "subjectType", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectType" }, { "name": "subjectId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The subjectId" }, { "name": "archiveId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The archiveId" } ] } }, "/admin/assets/purge": { "post": { "operationId": "purge_guild_assets", "summary": "Purge guild assets", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PurgeGuildAssetsResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Delete and clean up all assets belonging to a guild, including icons, banners, and other media. This is a destructive operation used for cleanup during guild management or compliance actions.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PurgeGuildAssetsRequest"}}} } } }, "/admin/audit-logs": { "post": { "operationId": "list_audit_logs", "summary": "List audit logs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AuditLogsListResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve a paginated list of audit logs with optional filtering by date range, action type, or actor. Used for tracking administrative operations and compliance auditing.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListAuditLogsRequest"}}} } } }, "/admin/audit-logs/search": { "post": { "operationId": "search_audit_logs", "summary": "Search audit logs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AuditLogsListResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Perform a full-text search across audit logs for specific events or changes. Allows targeted queries for compliance investigations or incident response.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchAuditLogsRequest"}}} } } }, "/admin/bans/avatar-hash/add": { "post": { "operationId": "add_avatar_hash_ban", "summary": "Add avatar hash ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more 8-char MD5-prefix avatar hashes. Avatars matching the banned hash will be rejected on upload.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanAvatarHashRequest"}}} } } }, "/admin/bans/avatar-hash/check": { "post": { "operationId": "check_avatar_hash_ban_status", "summary": "Check avatar hash ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether any of the provided avatar hashes are banned.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckAvatarHashRequest"}}} } } }, "/admin/bans/avatar-hash/remove": { "post": { "operationId": "remove_avatar_hash_ban", "summary": "Remove avatar hash ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied avatar-hash ban.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckAvatarHashRequest"}}} } } }, "/admin/bans/email/add": { "post": { "operationId": "add_email_ban", "summary": "Add email ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more email addresses from registering or creating accounts. Users attempting to use banned emails will be blocked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanEmailRequest"}}} } } }, "/admin/bans/email/check": { "post": { "operationId": "check_email_ban_status", "summary": "Check email ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more email addresses are currently banned from registration. Returns the ban status and metadata.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanEmailRequest"}}} } } }, "/admin/bans/email/remove": { "post": { "operationId": "remove_email_ban", "summary": "Remove email ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied email ban, allowing the address to be used for new registrations. Used for appeals or error correction.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanEmailRequest"}}} } } }, "/admin/bans/file-sha/add": { "post": { "operationId": "add_file_sha_ban", "summary": "Add file SHA ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more files by SHA hash. Uploads matching the banned hash will be rejected.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanFileShaRequest"}}} } } }, "/admin/bans/file-sha/bulk-add": { "post": { "operationId": "bulk_ban_file_shas", "summary": "Bulk-ban file SHAs as a background job", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that bans many file SHAs at once. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkBanFileShasRequest"}}} } } }, "/admin/bans/file-sha/check": { "post": { "operationId": "check_file_sha_ban_status", "summary": "Check file SHA ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more file SHA hashes are currently banned.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckFileShaRequest"}}} } } }, "/admin/bans/file-sha/remove": { "post": { "operationId": "remove_file_sha_ban", "summary": "Remove file SHA ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied file SHA ban, allowing uploads of that file again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnbanFileShaRequest"}}} } } }, "/admin/bans/ip/add": { "post": { "operationId": "add_ip_ban", "summary": "Add IP ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more IP addresses from accessing the platform. Users connecting from banned IPs will be denied service. Can be applied retroactively.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanIpRequest"}}} } } }, "/admin/bans/ip/check": { "post": { "operationId": "check_ip_ban_status", "summary": "Check IP ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more IP addresses are currently banned. Returns the ban status and any associated metadata like reason or expiration.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanIpRequest"}}} } } }, "/admin/bans/ip/remove": { "post": { "operationId": "remove_ip_ban", "summary": "Remove IP ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied IP ban, allowing traffic from those addresses again. Used for appeals or when bans were applied in error.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanIpRequest"}}} } } }, "/admin/bans/phrase/add": { "post": { "operationId": "add_phrase_ban", "summary": "Add phrase ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban a phrase. Matching is case-insensitive and also normalizes common bypass tricks such as inserted whitespace, punctuation, invisible characters, and compatibility glyphs.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanPhraseRequest"}}} } } }, "/admin/bans/phrase/check": { "post": { "operationId": "check_phrase_ban_status", "summary": "Check phrase ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether a phrase is currently banned.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanPhraseRequest"}}} } } }, "/admin/bans/phrase/remove": { "post": { "operationId": "remove_phrase_ban", "summary": "Remove phrase ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied phrase ban, allowing messages containing that phrase again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanPhraseRequest"}}} } } }, "/admin/bans/profile-substring/add": { "post": { "operationId": "add_profile_substring_ban", "summary": "Add profile-substring ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban a substring within a specific profile field (username, global_name, nickname, bio, or pronouns). Matching reuses the phrase blocklist normalization (whitespace, punctuation, zero-width, lookalikes).", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanProfileSubstringRequest"}}} } } }, "/admin/bans/profile-substring/check": { "post": { "operationId": "check_profile_substring_ban_status", "summary": "Check profile-substring ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether any of the provided substrings are banned for the given scope.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanProfileSubstringRequest"}}} } } }, "/admin/bans/profile-substring/remove": { "post": { "operationId": "remove_profile_substring_ban", "summary": "Remove profile-substring ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied profile-substring ban.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanProfileSubstringRequest"}}} } } }, "/admin/bans/url-domain/add": { "post": { "operationId": "add_url_domain_ban", "summary": "Add URL domain ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban an entire URL domain from being linked on the platform. All URLs under the banned domain will be blocked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUrlDomainRequest"}}} } } }, "/admin/bans/url-domain/check": { "post": { "operationId": "check_url_domain_ban_status", "summary": "Check URL domain ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether a URL domain is currently banned from being linked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUrlDomainRequest"}}} } } }, "/admin/bans/url-domain/remove": { "post": { "operationId": "remove_url_domain_ban", "summary": "Remove URL domain ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied URL domain ban, allowing links to that domain again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnbanUrlDomainRequest"}}} } } }, "/admin/bans/url/add": { "post": { "operationId": "add_url_ban", "summary": "Add URL ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Ban one or more URLs from being posted on the platform. Messages containing banned URLs will be blocked.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUrlRequest"}}} } } }, "/admin/bans/url/check": { "post": { "operationId": "check_url_ban_status", "summary": "Check URL ban status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether one or more URLs are currently banned from being posted.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CheckUrlBlocklistRequest"}}} } } }, "/admin/bans/url/remove": { "post": { "operationId": "remove_url_ban", "summary": "Remove URL ban", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lift a previously applied URL ban, allowing the URL to be posted again.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UnbanUrlRequest"}}} } } }, "/admin/billing/guilds/{guildId}/overview": { "get": { "operationId": "admin_billing_guild_overview", "summary": "Get billing overview for a guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingOverviewResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve guild billing state. The current billing mirror is user-scoped, so guilds without persisted billing records return an empty overview.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guildId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The guildId" } ] } }, "/admin/billing/users/{userId}/cancel-subscription": { "post": { "operationId": "admin_billing_cancel_subscription", "summary": "Cancel a user subscription", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Set a user Stripe subscription to cancel at period end.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/cancel-subscription-now": { "post": { "operationId": "admin_billing_cancel_subscription_now", "summary": "Cancel a user subscription immediately", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancel a user Stripe subscription immediately without issuing a refund.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingCancelImmediatelyRequest"}} } } } }, "/admin/billing/users/{userId}/end-premium-grace-period": { "post": { "operationId": "admin_billing_end_premium_grace_period", "summary": "End a user's premium grace period", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "End the post-cancel premium grace period for a user immediately, downgrading them and clearing premium_since. Idempotent: safe to call when not in grace. Use when investigating fraud or honoring a user request to opt out of the recovery window.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/invoices": { "get": { "operationId": "admin_billing_list_invoices", "summary": "List invoices for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminInvoiceListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve recent Stripe invoices for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/overview": { "get": { "operationId": "admin_billing_overview", "summary": "Get billing overview for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingOverviewResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve subscription status, payment history, and Stripe payment methods for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/payment-methods": { "get": { "operationId": "admin_billing_list_payment_methods", "summary": "List payment methods for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminPaymentMethodListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve the Stripe payment methods associated with a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/payments": { "get": { "operationId": "admin_billing_list_payments", "summary": "List payments for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminPaymentListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve the payment history stored for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/reactivate-subscription": { "post": { "operationId": "admin_billing_reactivate_subscription", "summary": "Reactivate a user subscription", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove a period-end cancellation from a user Stripe subscription.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/billing/users/{userId}/refund": { "post": { "operationId": "admin_billing_refund", "summary": "Issue a refund for a user payment", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Issue a full or partial refund for a user payment through Stripe.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminBillingRefundRequest"}}} } } }, "/admin/billing/users/{userId}/refund-policy-cancel-now": { "post": { "operationId": "admin_billing_refund_policy_cancel_now", "summary": "Apply refund policy and cancel subscription immediately", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": {"$ref": "#/components/schemas/AdminBillingRefundLatestInvoiceCancelResponse"} } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancels a user subscription immediately and applies the support refund policy against the latest paid Stripe invoice.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ], "requestBody": { "required": true, "content": { "application/json": { "schema": {"$ref": "#/components/schemas/AdminBillingRefundLatestInvoiceCancelRequest"} } } } } }, "/admin/billing/users/{userId}/subscription": { "get": { "operationId": "admin_billing_get_subscription", "summary": "Get subscription for a user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminSubscriptionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve the current Stripe subscription details for a user.", "security": [{"adminApiKey": []}], "parameters": [ {"name": "userId", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The userId"} ] } }, "/admin/bulk/add-guild-members": { "post": { "operationId": "bulk_add_guild_members", "summary": "Bulk add guild members", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that adds multiple users to a guild. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkAddGuildMembersRequest"}}} } } }, "/admin/bulk/schedule-user-deletion": { "post": { "operationId": "schedule_bulk_user_deletion", "summary": "Schedule bulk user deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that schedules account deletions for multiple users. Returns a job_id immediately; observe progress at /admin/jobs/:job_id. Note: the worker version skips Stripe refunds, session termination, and identifier banning — apply those separately for high-risk accounts.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkScheduleUserDeletionRequest"}}} } } }, "/admin/bulk/update-guild-features": { "post": { "operationId": "bulk_update_guild_features", "summary": "Bulk update guild features", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that modifies guild features across multiple servers. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkUpdateGuildFeaturesRequest"}}} } } }, "/admin/bulk/update-suspicious-activity-flags": { "post": { "operationId": "bulk_update_suspicious_activity_flags", "summary": "Bulk update suspicious activity flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that modifies suspicious activity flags for multiple users. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/BulkUpdateSuspiciousActivityFlagsRequest"}} } } } }, "/admin/bulk/update-user-flags": { "post": { "operationId": "bulk_update_user_flags", "summary": "Bulk update user flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkJobResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enqueue a background job that modifies user flags (e.g., verified, bot, system) for multiple users. Returns a job_id immediately; observe progress at /admin/jobs/:job_id.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BulkUpdateUserFlagsRequest"}}} } } }, "/admin/codes/gift": { "post": { "operationId": "generate_gift_codes", "summary": "Generate gift codes", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CodesResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Create one-use Plutonium gift codes with an explicit positive duration. Lifetime gifts are not supported.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GenerateGiftCodesRequest"}}} } } }, "/admin/discovery/applications": { "get": { "operationId": "list_pending_discovery_applications", "summary": "List all pending discovery applications", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "type": "array", "items": {"$ref": "#/components/schemas/DiscoveryAdminPendingApplicationResponse"} } } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns every pending discovery application, enriched with guild metadata. No pagination. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/discovery/applications/{guild_id}/approve": { "post": { "operationId": "approve_discovery_application", "summary": "Approve discovery application", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Approve a pending discovery application. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryAdminReviewRequest"}}} } } }, "/admin/discovery/applications/{guild_id}/reject": { "post": { "operationId": "reject_discovery_application", "summary": "Reject discovery application", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reject a pending discovery application. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryAdminRejectRequest"}}} } } }, "/admin/discovery/guilds/{guild_id}/remove": { "post": { "operationId": "remove_from_discovery", "summary": "Remove guild from discovery", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryApplicationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove an approved guild from discovery. Requires DISCOVERY_REMOVE permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DiscoveryAdminRemoveRequest"}}} } } }, "/admin/discovery/listed": { "get": { "operationId": "list_discovery_listed_guilds", "summary": "List all guilds currently listed in discovery", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": {"type": "array", "items": {"$ref": "#/components/schemas/DiscoveryAdminListedGuildResponse"}} } } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns every approved/listed discovery guild, enriched with guild metadata. No pagination. Requires DISCOVERY_REVIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/gateway/memory-stats": { "post": { "operationId": "get_guild_memory_statistics", "summary": "Get guild memory statistics", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildMemoryStatsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns heap and resident memory usage per guild. Requires GATEWAY_MEMORY_STATS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetProcessMemoryStatsRequest"}}} } } }, "/admin/gateway/reload-all": { "post": { "operationId": "reload_all_specified_guilds", "summary": "Reload specified guilds", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReloadAllGuildsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reconnects to the database and re-syncs guild state. Used for recovery after data inconsistencies. Requires GATEWAY_RELOAD_ALL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReloadGuildsRequest"}}} } } }, "/admin/gateway/stats": { "get": { "operationId": "get_gateway_node_statistics", "summary": "Get gateway node statistics", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/NodeStatsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns uptime, process memory, and guild count. Used to monitor gateway health and performance. Requires GATEWAY_MEMORY_STATS permission.", "security": [{"adminApiKey": []}] } }, "/admin/gateway/voice-state-counts": { "get": { "operationId": "get_gateway_voice_state_counts", "summary": "Get gateway voice state counts", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/GatewayVoiceStateCountsResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns active voice state counts grouped by voice region and voice server. Requires GATEWAY_MEMORY_STATS permission.", "security": [{"adminApiKey": []}] } }, "/admin/guilds/audit-logs": { "post": { "operationId": "list_guild_audit_logs_admin", "summary": "List guild audit logs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildAuditLogsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Returns in-app guild audit log entries for a guild without requiring VIEW_AUDIT_LOG membership permission. Supports pagination via before/after log IDs and filtering by user_id or action_type. Requires GUILD_AUDIT_LOG_VIEW permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildAuditLogsRequest"}}} } } }, "/admin/guilds/ban-member": { "post": { "operationId": "admin_ban_guild_member", "summary": "Ban guild member", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Permanently bans a user from a guild. Prevents user from joining. Logged to audit log. Requires GUILD_BAN_MEMBER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanGuildMemberRequest"}}} } } }, "/admin/guilds/clear-fields": { "post": { "operationId": "clear_guild_fields", "summary": "Clear guild fields", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Clears specified optional guild fields such as icon, banner, or description. Logged to audit log. Requires GUILD_UPDATE_SETTINGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ClearGuildFieldsRequest"}}} } } }, "/admin/guilds/delete": { "post": { "operationId": "admin_delete_guild", "summary": "Delete guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Permanently deletes a guild. Deletes all channels, messages, and settings. Irreversible operation. Logged to audit log. Requires GUILD_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteGuildRequest"}}} } } }, "/admin/guilds/force-add-user": { "post": { "operationId": "force_add_user_to_guild", "summary": "Force add user to guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Forcefully adds a user to a guild. Bypasses normal invite flow for administrative account recovery. Logged to audit log. Requires GUILD_FORCE_ADD_MEMBER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ForceAddUserToGuildRequest"}}} } } }, "/admin/guilds/kick-member": { "post": { "operationId": "kick_guild_member", "summary": "Kick guild member", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Temporarily removes a user from a guild. User can rejoin. Logged to audit log. Requires GUILD_KICK_MEMBER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/KickGuildMemberRequest"}}} } } }, "/admin/guilds/list-members": { "post": { "operationId": "admin_list_guild_members", "summary": "List guild members", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildMembersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all guild members with pagination. Returns member IDs, join dates, and roles. Requires GUILD_LIST_MEMBERS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildMembersRequest"}}} } } }, "/admin/guilds/lookup": { "post": { "operationId": "lookup_guild", "summary": "Look up guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupGuildResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves complete guild details including metadata, settings, and statistics. Look up by guild ID or vanity slug. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupGuildRequest"}}} } } }, "/admin/guilds/reload": { "post": { "operationId": "reload_guild", "summary": "Reload guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reloads a single guild state from database. Used to recover from corruption or sync issues. Logged to audit log. Requires GUILD_RELOAD permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReloadGuildRequest"}}} } } }, "/admin/guilds/search": { "post": { "operationId": "search_guilds", "summary": "Search guilds", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchGuildsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches guilds by name, ID, and other criteria. Supports full-text search and filtering. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchGuildsRequest"}}} } } }, "/admin/guilds/shutdown": { "post": { "operationId": "shutdown_guild", "summary": "Shutdown guild", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuccessResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Shuts down and unloads a guild from the gateway. Guild data remains in database. Used for emergency resource cleanup. Logged to audit log. Requires GUILD_SHUTDOWN permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ShutdownGuildRequest"}}} } } }, "/admin/guilds/transfer-ownership": { "post": { "operationId": "admin_transfer_guild_ownership", "summary": "Transfer guild ownership", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Transfers guild ownership to another user. Used when owner is inactive or for administrative recovery. Logged to audit log. Requires GUILD_TRANSFER_OWNERSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TransferGuildOwnershipRequest"}}} } } }, "/admin/guilds/update-features": { "post": { "operationId": "update_guild_features", "summary": "Update guild features", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Enables or disables guild feature flags. Modifies verification levels and community settings. Changes are logged to audit log. Requires GUILD_UPDATE_FEATURES permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildFeaturesRequest"}}} } } }, "/admin/guilds/update-name": { "post": { "operationId": "update_guild_name", "summary": "Update guild name", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Changes a guild name. Used for removing inappropriate names or correcting display issues. Logged to audit log. Requires GUILD_UPDATE_NAME permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildNameRequest"}}} } } }, "/admin/guilds/update-settings": { "post": { "operationId": "update_guild_settings", "summary": "Update guild settings", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Modifies guild configuration including description, region, language and other settings. Logged to audit log. Requires GUILD_UPDATE_SETTINGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildSettingsRequest"}}} } } }, "/admin/guilds/update-vanity": { "post": { "operationId": "update_guild_vanity", "summary": "Update guild vanity", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GuildUpdateResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates a guild vanity URL slug. Sets custom short URL and prevents duplicate slugs. Logged to audit log. Requires GUILD_UPDATE_VANITY permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGuildVanityRequest"}}} } } }, "/admin/guilds/{guild_id}/emojis": { "get": { "operationId": "admin_list_guild_emojis", "summary": "List guild emojis", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildEmojisResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all custom emojis in a guild. Returns ID, name, and creation date. Used for asset inventory and purge operations. Requires ASSET_PURGE permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ] } }, "/admin/guilds/{guild_id}/stickers": { "get": { "operationId": "admin_list_guild_stickers", "summary": "List guild stickers", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListGuildStickersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all stickers in a guild. Returns ID, name, and asset information. Used for asset inventory and purge operations. Requires ASSET_PURGE permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "guild_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the guild" } ] } }, "/admin/instance-config/branding-asset": { "post": { "operationId": "upload_instance_branding_asset", "summary": "Upload or clear an instance branding asset", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Uploads a branding image served by the media proxy and stores its URL, or clears it when no image is provided. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BrandingAssetUploadRequest"}}} } } }, "/admin/instance-config/get": { "post": { "operationId": "get_instance_config", "summary": "Get instance configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves instance-wide configuration including webhooks and SSO configuration. Requires INSTANCE_CONFIG_VIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/instance-config/integrations/smtp/test": { "post": { "operationId": "test_instance_smtp_config", "summary": "Validate SMTP configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceEmailSmtpTestResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Validates that an SMTP configuration can authenticate and accept a connection. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceEmailSmtpTestRequest"}}} } } }, "/admin/instance-config/pending-registrations/approve": { "post": { "operationId": "approve_pending_registration", "summary": "Approve a pending registration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Approves a registration waiting for manual review by removing its pending registration trait. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PendingRegistrationActionRequest"}}} } } }, "/admin/instance-config/pending-registrations/reject": { "post": { "operationId": "reject_pending_registration", "summary": "Reject a pending registration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Rejects a registration waiting for manual review and prevents the account from logging in. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PendingRegistrationActionRequest"}}} } } }, "/admin/instance-config/registration-urls/create": { "post": { "operationId": "create_registration_url", "summary": "Create an admin-issued registration URL", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateRegistrationUrlResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Creates a one-time-display registration URL that can be sent manually by an administrator. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateRegistrationUrlRequest"}}} } } }, "/admin/instance-config/registration-urls/revoke": { "post": { "operationId": "revoke_registration_url", "summary": "Revoke an admin-issued registration URL", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Revokes an admin-issued registration URL so it can no longer be used. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RegistrationUrlActionRequest"}}} } } }, "/admin/instance-config/update": { "post": { "operationId": "update_instance_config", "summary": "Update instance configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates instance configuration settings including webhook URLs and SSO parameters. Changes apply immediately. Requires INSTANCE_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/InstanceConfigUpdateRequest"}}} } } }, "/admin/jobs/active": { "post": { "operationId": "list_active_jobs", "summary": "List active (queued + running) jobs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ActiveJobsResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Polling endpoint for the Jobs page. Returns only currently-active jobs (queued or running) so the UI can refresh progress without scanning historical data.", "security": [{"adminApiKey": []}] } }, "/admin/jobs/cancel": { "post": { "operationId": "cancel_job", "summary": "Request cancellation of a running job", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CancelJobResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Mark a job as cancel-requested. The handler must be cooperatively cancellable — it will see the flag at its next `helpers.shouldCancel()` check. Returns `{cancelled: false}` for already-terminal jobs.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CancelJobRequest"}}} } } }, "/admin/jobs/get": { "post": { "operationId": "get_job", "summary": "Get job detail", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetJobResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Fetch a single job ledger entry with full payload, result, and progress.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetJobRequest"}}} } } }, "/admin/jobs/list": { "post": { "operationId": "list_jobs", "summary": "List jobs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListJobsResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Paginated, filterable list of background jobs from the human-facing ledger. Walks back through day-buckets and applies status / task-type / requester filters in-process.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListJobsRequest"}}} } } }, "/admin/limit-config/get": { "post": { "operationId": "get_limit_config", "summary": "Get limit configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LimitConfigGetResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves rate limit configuration including message limits, upload limits, and request throttles. Shows defaults, metadata, and any modifications from defaults. Requires INSTANCE_LIMIT_CONFIG_VIEW permission.", "security": [{"adminApiKey": []}] } }, "/admin/limit-config/update": { "post": { "operationId": "update_limit_config", "summary": "Update limit configuration", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LimitConfigGetResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates rate limit configuration including message throughput, upload sizes, and request throttles. Changes apply immediately to all new operations. Requires INSTANCE_LIMIT_CONFIG_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LimitConfigUpdateRequest"}}} } } }, "/admin/messages/browse": { "post": { "operationId": "browse_channel_messages", "summary": "Browse channel messages", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BrowseChannelResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Browses messages in a channel with cursor-based pagination. Returns messages in reverse chronological order. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BrowseChannelRequest"}}} } } }, "/admin/messages/delete": { "post": { "operationId": "admin_delete_message", "summary": "Delete single message", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteMessageResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Deletes a single message permanently. Used for removing inappropriate or harmful content. Logged to audit log. Requires MESSAGE_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteMessageRequest"}}} } } }, "/admin/messages/delete-all": { "post": { "operationId": "delete_all_user_messages", "summary": "Delete all user messages", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteAllUserMessagesResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Deletes all messages from a specific user across all channels. Permanent operation used for account suspension or policy violation. Requires MESSAGE_DELETE_ALL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteAllUserMessagesRequest"}}} } } }, "/admin/messages/lookup": { "post": { "operationId": "lookup_message", "summary": "Look up message details", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves complete message details including content, attachments, edits, and metadata. Look up by message ID and channel. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageRequest"}}} } } }, "/admin/messages/lookup-by-attachment": { "post": { "operationId": "lookup_message_by_attachment", "summary": "Look up message by attachment", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Finds and retrieves message containing a specific attachment by ID. Used to locate messages with sensitive or illegal content. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupMessageByAttachmentRequest"}}} } } }, "/admin/messages/report-to-ncmec": { "post": { "operationId": "report_message_attachment_to_ncmec", "summary": "Report an image attachment to NCMEC", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/NcmecAttachmentSubmitResultResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Submits a specific image attachment to NCMEC, creates an audit log entry, silently disables the user, triggers one archive for the user, and schedules content deletion after the archive completes.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReportAttachmentToNcmecRequest"}}} } } }, "/admin/messages/search": { "post": { "operationId": "search_channel_messages", "summary": "Search channel messages", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchChannelMessagesResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches messages within a channel by content. Requires MESSAGE_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchChannelMessagesRequest"}}} } } }, "/admin/messages/shred": { "post": { "operationId": "queue_message_shred", "summary": "Queue message shred operation", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Queues bulk message shredding with attachment deletion. Returns job ID to track progress asynchronously. Used for large-scale content removal. Requires MESSAGE_SHRED permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredRequest"}}} } } }, "/admin/messages/shred-status": { "post": { "operationId": "get_message_shred_status", "summary": "Get message shred status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredStatusResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Polls status of a queued message shred operation. Returns progress percentage and whether the job is complete. Requires MESSAGE_SHRED permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MessageShredStatusRequest"}}} } } }, "/admin/reports/list": { "post": { "operationId": "list_reports", "summary": "List reports", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListReportsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists user and content reports with optional status filtering and pagination. Requires REPORT_VIEW permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListReportsRequest"}}} } } }, "/admin/reports/resolve": { "post": { "operationId": "resolve_report", "summary": "Resolve report", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResolveReportResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Closes and resolves a report with optional public comment. Marks report as handled and creates audit log entry. Requires REPORT_RESOLVE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResolveReportRequest"}}} } } }, "/admin/reports/search": { "post": { "operationId": "search_reports", "summary": "Search reports", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchReportsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches and filters reports by user, content, reason, and status criteria. Supports full-text search and advanced filtering. Requires REPORT_VIEW permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchReportsRequest"}}} } } }, "/admin/reports/{report_id}": { "get": { "operationId": "get_report", "summary": "Get report details", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReportAdminResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieves detailed information about a specific report including content, reporter, and reason. Requires REPORT_VIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "report_id", "in": "path", "required": true, "schema": {"type": "string"}, "description": "The report id" } ] } }, "/admin/search/refresh-index": { "post": { "operationId": "refresh_search_index", "summary": "Refresh search index", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RefreshSearchIndexResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Trigger full or partial search index rebuild. Creates background job to reindex guilds and users. Returns job ID for status tracking. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RefreshSearchIndexRequest"}}} } } }, "/admin/search/refresh-status": { "post": { "operationId": "get_search_index_refresh_status", "summary": "Get search index refresh status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/IndexRefreshStatusResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Polls status of a search index refresh job. Returns completion percentage and current phase. Requires GUILD_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetIndexRefreshStatusRequest"}}} } } }, "/admin/suspicious-email-domains/add": { "post": { "operationId": "add_suspicious_email_domain", "summary": "Add suspicious email domain", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Flag an email domain as suspicious. Registration is not blocked, but new accounts using this domain are required to verify a phone number before they can act on the platform. The list itself is not exposed to users — they only see the verified-phone gate.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuspiciousEmailDomainRequest"}}} } } }, "/admin/suspicious-email-domains/check": { "post": { "operationId": "check_suspicious_email_domain", "summary": "Check suspicious email domain status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanCheckResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Query whether an email domain is currently flagged as suspicious.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuspiciousEmailDomainRequest"}}} } } }, "/admin/suspicious-email-domains/remove": { "post": { "operationId": "remove_suspicious_email_domain", "summary": "Remove suspicious email domain flag", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove a domain from the suspicious list. New registrations from this domain will no longer be auto-required to verify a phone number on signup.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SuspiciousEmailDomainRequest"}}} } } }, "/admin/system-dm/send": { "post": { "operationId": "send_system_dm", "summary": "Send system DM", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SendSystemDmResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Queue a worker job that sends the same system DM content to each provided user ID. Progress is observable via the Jobs admin page (task_type=sendSystemDm). Requires SYSTEM_DM_SEND permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SendSystemDmRequest"}}} } } }, "/admin/system/heap-snapshot": { "post": { "operationId": "take_heap_snapshot", "summary": "Take a V8 heap snapshot", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/HeapSnapshotResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Triggers a V8 heap snapshot of the current process and returns the snapshot file. Used for diagnosing memory leaks. Requires SYSTEM_HEAP_SNAPSHOT permission.", "security": [{"adminApiKey": []}] } }, "/admin/users/cancel-bulk-message-deletion": { "post": { "operationId": "admin_cancel_bulk_message_deletion", "summary": "Cancel bulk message deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancel a scheduled bulk message deletion job for a user. Prevents deletion of user messages across guilds. Creates audit log entry. Requires USER_CANCEL_BULK_MESSAGE_DELETION permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CancelBulkMessageDeletionRequest"}}} } } }, "/admin/users/cancel-deletion": { "post": { "operationId": "cancel_account_deletion", "summary": "Cancel account deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Cancel a scheduled account deletion. User account restoration prevents data loss. Creates audit log entry. Requires USER_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisableMfaRequest"}}} } } }, "/admin/users/change-dob": { "post": { "operationId": "change_user_dob", "summary": "Change user DOB", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Update user date of birth. May affect age-restricted content access. Creates audit log entry. Requires USER_UPDATE_DOB permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChangeDobRequest"}}} } } }, "/admin/users/change-email": { "post": { "operationId": "change_user_email", "summary": "Change user email", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Change user email address. New email must be valid and unique. Marks email as verified. Creates audit log entry. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChangeEmailRequest"}}} } } }, "/admin/users/change-log": { "post": { "operationId": "get_user_change_log", "summary": "Get user change log", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/ListUserChangeLogResponseSchema"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Retrieve complete change log history for a user. Shows all profile modifications, admin actions, and account changes with timestamps. Requires USER_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserChangeLogRequest"}}} } } }, "/admin/users/change-username": { "post": { "operationId": "change_user_username", "summary": "Change user username", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Change user username. New username must meet requirements and be unique. Creates audit log entry. Requires USER_UPDATE_USERNAME permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ChangeUsernameRequest"}}} } } }, "/admin/users/clear-fields": { "post": { "operationId": "clear_user_fields", "summary": "Clear user fields", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Clear or reset user profile fields such as bio, avatar, or status. Creates audit log entry. Requires USER_UPDATE_PROFILE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ClearUserFieldsRequest"}}} } } }, "/admin/users/delete-webauthn-credential": { "post": { "operationId": "delete_user_webauthn_credential", "summary": "Delete user WebAuthn credential", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Delete a specific WebAuthn credential (passkey/security key) from a user account. Creates audit log entry. Requires USER_UPDATE_MFA permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteWebAuthnCredentialRequest"}}} } } }, "/admin/users/disable-mfa": { "post": { "operationId": "disable_user_mfa", "summary": "Disable user MFA", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Disable two-factor authentication for user account. Removes all authenticators. Creates audit log entry. Requires USER_UPDATE_MFA permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisableMfaRequest"}}} } } }, "/admin/users/disable-suspicious": { "post": { "operationId": "disable_user_suspicious", "summary": "Disable user for suspicious activity", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Disable user account due to suspicious activity or abuse. Account is locked pending review. User cannot access services. Creates audit log entry. Requires USER_DISABLE_SUSPICIOUS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/DisableForSuspiciousActivityRequest"}} } } } }, "/admin/users/list-dm-channels": { "post": { "operationId": "list_user_dm_channels", "summary": "List user DM channels", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserDmChannelsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List historical one-to-one DM channels for a user with cursor pagination. Requires USER_LIST_DM_CHANNELS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserDmChannelsRequest"}}} } } }, "/admin/users/list-group-dm-channels": { "post": { "operationId": "list_user_group_dm_channels", "summary": "List user group DM channels", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/ListUserGroupDmChannelsResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List group DM channels for a user. Requires USER_LIST_DM_CHANNELS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserGroupDmChannelsRequest"}}} } } }, "/admin/users/list-guilds": { "post": { "operationId": "list_user_guilds", "summary": "List user guilds", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserGuildsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List all guilds a user is a member of. Shows roles and join dates. Requires USER_LIST_GUILDS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserGuildsRequest"}}} } } }, "/admin/users/list-relationships": { "post": { "operationId": "admin_list_user_relationships", "summary": "List user relationships", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserRelationshipsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List a user's friends, incoming and outgoing friend requests, and blocked users. Requires USER_LIST_RELATIONSHIPS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserRelationshipsRequest"}}} } } }, "/admin/users/list-sessions": { "post": { "operationId": "list_user_sessions", "summary": "List user sessions", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserSessionsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List all active user sessions across devices. Shows device info, IP, last activity, and creation time. Requires USER_LIST_SESSIONS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListUserSessionsRequest"}}} } } }, "/admin/users/list-webauthn-credentials": { "post": { "operationId": "list_user_webauthn_credentials", "summary": "List user WebAuthn credentials", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/WebAuthnCredentialListResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "List all WebAuthn credentials (passkeys/security keys) registered for a user. Returns credential names, creation dates, and last usage. Creates audit log entry. Requires USER_UPDATE_MFA permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListWebAuthnCredentialsRequest"}}} } } }, "/admin/users/lookup": { "post": { "operationId": "lookup_user", "summary": "Lookup user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupUserResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Look up detailed user profile by ID, username, email, or phone. Returns account status, permissions, and metadata. Requires USER_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/LookupUserRequest"}}} } } }, "/admin/users/me": { "get": { "operationId": "get_authenticated_admin_user", "summary": "Get authenticated admin user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AdminUsersMeResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Get profile of currently authenticated admin user. Returns admin permissions, roles, and metadata. Requires AUTHENTICATE permission.", "security": [{"adminApiKey": []}] } }, "/admin/users/remove-relationship": { "post": { "operationId": "remove_user_relationship", "summary": "Remove user relationship", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Remove a single relationship row for a user. For friend and outgoing_request, the mirror entry on the other user is also removed. Dispatches RELATIONSHIP_REMOVE gateway events. Requires USER_REMOVE_RELATIONSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RemoveUserRelationshipRequest"}}} } } }, "/admin/users/remove-relationships-by-category": { "post": { "operationId": "remove_user_relationships_by_category", "summary": "Remove all of a user's relationships in a category", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/RemoveUserRelationshipsResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Bulk-remove every relationship of the chosen category (friend, incoming_request, outgoing_request, blocked) for a user. Mirror entries on the other party are removed for friend, incoming_request, and outgoing_request. Requires USER_REMOVE_RELATIONSHIP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/RemoveUserRelationshipsByCategoryRequest"}} } } } }, "/admin/users/resend-verification-email": { "post": { "operationId": "admin_resend_verification_email", "summary": "Resend verification email", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Resend the account verification email for a user. Creates audit log entry and honours email verification resend limits. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ResendVerificationEmailRequest"}}} } } }, "/admin/users/schedule-deletion": { "post": { "operationId": "schedule_account_deletion", "summary": "Schedule account deletion", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Schedule user account for deletion after grace period. Account will be fully deleted with all content unless cancellation is executed. Creates audit log entry. Requires USER_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ScheduleAccountDeletionRequest"}}} } } }, "/admin/users/search": { "post": { "operationId": "search_users", "summary": "Search users", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchUsersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Searches users by username, email, ID, last active IP, and other criteria. Supports full-text search and filtering by account status. Requires USER_LOOKUP permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchUsersRequest"}}} } } }, "/admin/users/send-password-reset": { "post": { "operationId": "send_password_reset", "summary": "Send password reset", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Send password reset email to user with reset link. User must use link within expiry window. Creates audit log entry. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SendPasswordResetRequest"}}} } } }, "/admin/users/set-acls": { "post": { "operationId": "set_user_acls", "summary": "Set user ACLs", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Grant or revoke admin ACL permissions to user. Controls admin capabilities and panel access. Creates audit log entry. Requires ACL_SET_USER permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserAclsRequest"}}} } } }, "/admin/users/set-bot-status": { "post": { "operationId": "set_user_bot_status", "summary": "Set user bot status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Mark or unmark a user account as a bot. Controls bot badge visibility and API permissions. Creates audit log entry. Requires USER_UPDATE_BOT_STATUS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserBotStatusRequest"}}} } } }, "/admin/users/set-system-status": { "post": { "operationId": "set_user_system_status", "summary": "Set user system status", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Mark or unmark a user as a system account. System accounts have special permissions for automated operations. Creates audit log entry. Requires USER_UPDATE_BOT_STATUS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserSystemStatusRequest"}}} } } }, "/admin/users/set-traits": { "post": { "operationId": "set_user_traits", "summary": "Set user traits", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Set or update user trait attributes and profile metadata. Traits customize user display and features. Creates audit log entry. Requires USER_UPDATE_TRAITS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SetUserTraitsRequest"}}} } } }, "/admin/users/temp-ban": { "post": { "operationId": "temp_ban_user", "summary": "Temp ban user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Apply temporary ban to user account for specified duration. Prevents login and guild operations. Automatically lifts after expiry. Creates audit log entry. Requires USER_TEMP_BAN permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TempBanUserRequest"}}} } } }, "/admin/users/terminate-sessions": { "post": { "operationId": "terminate_user_sessions", "summary": "Terminate user sessions", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TerminateSessionsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Terminate all active user sessions across devices. Forces user to re-authenticate on next connection. Creates audit log entry. Requires USER_UPDATE_FLAGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TerminateSessionsRequest"}}} } } }, "/admin/users/unban": { "post": { "operationId": "unban_user", "summary": "Unban user", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Immediately remove temporary ban from user account. User can log in and access guilds again. Creates audit log entry. Requires USER_TEMP_BAN permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisableMfaRequest"}}} } } }, "/admin/users/update-flags": { "post": { "operationId": "update_user_flags", "summary": "Update user flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Add or remove user flags to control account features and restrictions. Flags determine verification status and special properties. Creates audit log entry. Requires USER_UPDATE_FLAGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateUserFlagsRequest"}}} } } }, "/admin/users/update-has-verified-phone": { "post": { "operationId": "update_user_has_verified_phone", "summary": "Update user phone verification flag", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Set whether a user is treated as having completed phone verification. This is the only supported path for clearing the irreversible user-facing phone verification flag.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateHasVerifiedPhoneRequest"}}} } } }, "/admin/users/update-premium-flags": { "post": { "operationId": "update_user_premium_flags", "summary": "Update user premium flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Add or remove premium-related flags on a user account (badge visibility, override, purchase block, etc). Creates audit log entry. Requires USER_UPDATE_FLAGS permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdatePremiumFlagsRequest"}}} } } }, "/admin/users/update-suspicious-activity-flags": { "post": { "operationId": "update_suspicious_activity_flags", "summary": "Update suspicious activity flags", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Flag user as suspicious for account abuse, fraud, or policy violations. Enables enforcement actions and rate limiting. Creates audit log entry. Requires USER_UPDATE_SUSPICIOUS_ACTIVITY permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": { "application/json": {"schema": {"$ref": "#/components/schemas/UpdateSuspiciousActivityFlagsRequest"}} } } } }, "/admin/users/verify-email": { "post": { "operationId": "verify_user_email", "summary": "Verify user email", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserMutationResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Manually verify user email address without requiring confirmation link. Bypasses email verification requirement. Creates audit log entry. Requires USER_UPDATE_EMAIL permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/VerifyUserEmailRequest"}}} } } }, "/admin/users/{user_id}/ban-avatar": { "post": { "operationId": "ban_user_avatar", "summary": "Ban this user's current avatar", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUserAvatarResponseSchema"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Reads the user's current avatar_hash, strips any animation prefix, and adds the 8-char hash to the avatar blocklist. Returns the banned hash.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "The ID of the user" } ], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/BanUserAvatarRequest"}}} } } }, "/admin/voice/diagnostics/objects": { "get": { "operationId": "list_voice_diagnostics_objects", "summary": "List voice diagnostics objects", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": { "application/json": {"schema": {"$ref": "#/components/schemas/VoiceDiagnosticsObjectListResponse"}} } }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists raw voice diagnostics NDJSON S3 objects for a channel and time range. Requires VOICE_DIAGNOSTICS_VIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "channel_id", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Channel id to query diagnostics for" } }, { "name": "start_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive start timestamp in milliseconds" } }, { "name": "end_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive end timestamp in milliseconds" } }, { "name": "session_id", "in": "query", "required": false, "schema": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9_.:-]+$", "description": "Optional voice diagnostics session id filter" } }, { "name": "limit_objects", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 5000, "format": "int32", "description": "Maximum matching S3 objects to include" } } ] } }, "/admin/voice/diagnostics/raw": { "get": { "operationId": "stream_voice_diagnostics_raw", "summary": "Stream raw voice diagnostics", "tags": ["Admin"], "responses": { "204": {"description": "No Content"}, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Streams matching voice diagnostics NDJSON objects for local processing. Requires VOICE_DIAGNOSTICS_VIEW permission.", "security": [{"adminApiKey": []}], "parameters": [ { "name": "channel_id", "in": "query", "required": true, "schema": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Channel id to query diagnostics for" } }, { "name": "start_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive start timestamp in milliseconds" } }, { "name": "end_ms", "in": "query", "required": true, "schema": { "type": "integer", "minimum": 0, "maximum": 8640000000000000, "format": "int64", "description": "Inclusive end timestamp in milliseconds" } }, { "name": "session_id", "in": "query", "required": false, "schema": { "type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9_.:-]+$", "description": "Optional voice diagnostics session id filter" } }, { "name": "limit_objects", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "maximum": 5000, "format": "int32", "description": "Maximum matching S3 objects to include" } } ] } }, "/admin/voice/regions/create": { "post": { "operationId": "create_voice_region", "summary": "Create voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceRegionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Creates a new voice server region. Defines geographic location and performance characteristics for voice routing. Creates audit log entry. Requires VOICE_REGION_CREATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceRegionRequest"}}} } } }, "/admin/voice/regions/delete": { "post": { "operationId": "delete_voice_region", "summary": "Delete voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Deletes a voice region. Removes region from routing and reassigns active connections. Creates audit log entry. Requires VOICE_REGION_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceRegionRequest"}}} } } }, "/admin/voice/regions/get": { "post": { "operationId": "get_voice_region", "summary": "Get voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceRegionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Gets detailed information about a voice region including assigned servers, capacity, and server details. Requires VOICE_REGION_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceRegionRequest"}}} } } }, "/admin/voice/regions/list": { "post": { "operationId": "list_voice_regions", "summary": "List voice regions", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceRegionsResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all configured voice server regions with status and server count. Shows region names, latency info, and availability. Requires VOICE_REGION_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceRegionsRequest"}}} } } }, "/admin/voice/regions/update": { "post": { "operationId": "update_voice_region", "summary": "Update voice region", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceRegionResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates voice region settings such as latency thresholds or priority. Changes affect voice routing for new sessions. Creates audit log entry. Requires VOICE_REGION_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceRegionRequest"}}} } } }, "/admin/voice/servers/create": { "post": { "operationId": "create_voice_server", "summary": "Create voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceServerResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Creates and provisions a new voice server instance in a region. Configures capacity, codecs, and encryption. Creates audit log entry. Requires VOICE_SERVER_CREATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateVoiceServerRequest"}}} } } }, "/admin/voice/servers/delete": { "post": { "operationId": "delete_voice_server", "summary": "Delete voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Decommissions and removes a voice server instance. Disconnects active sessions and migrates to other servers. Creates audit log entry. Requires VOICE_SERVER_DELETE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DeleteVoiceServerRequest"}}} } } }, "/admin/voice/servers/get": { "post": { "operationId": "get_voice_server", "summary": "Get voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceServerResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Gets detailed voice server information including active connections and configuration. Requires VOICE_SERVER_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetVoiceServerRequest"}}} } } }, "/admin/voice/servers/list": { "post": { "operationId": "list_voice_servers", "summary": "List voice servers", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceServersResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Lists all voice servers with connection counts and capacity. Shows server status, region assignment, and load information. Supports filtering and pagination. Requires VOICE_SERVER_LIST permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ListVoiceServersRequest"}}} } } }, "/admin/voice/servers/update": { "post": { "operationId": "update_voice_server", "summary": "Update voice server", "tags": ["Admin"], "responses": { "200": { "description": "Success", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceServerResponse"}}} }, "400": { "description": "Bad Request - The request was malformed or contained invalid data", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "401": { "description": "Unauthorized - Authentication is required or the token is invalid", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "403": { "description": "Forbidden - You do not have permission to perform this action", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} }, "429": { "description": "Too Many Requests - You are being rate limited", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}, "headers": { "Retry-After": { "description": "Number of seconds to wait before retrying (only on 429)", "schema": {"type": "integer"} }, "X-RateLimit-Limit": { "description": "The number of requests that can be made in the current window", "schema": {"type": "integer"} }, "X-RateLimit-Remaining": { "description": "The number of remaining requests that can be made", "schema": {"type": "integer"} }, "X-RateLimit-Reset": { "description": "Unix timestamp when the rate limit resets", "schema": {"type": "integer"} } } }, "500": { "description": "Internal Server Error - An unexpected error occurred", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}} } }, "description": "Updates voice server configuration including capacity, region assignment, and quality settings. Changes apply to new connections. Creates audit log entry. Requires VOICE_SERVER_UPDATE permission.", "security": [{"adminApiKey": []}], "requestBody": { "required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateVoiceServerRequest"}}} } } } }, "components": { "schemas": { "CreateAdminApiKeyResponse": { "type": "object", "properties": { "key_id": {"type": "string", "description": "Unique identifier for the API key"}, "key": {"type": "string", "description": "The generated API key secret (only shown once)"}, "name": {"type": "string", "description": "Display name for the API key"}, "created_at": {"type": "string", "description": "ISO 8601 timestamp when the key was created"}, "expires_at": { "description": "ISO 8601 timestamp when the key expires, or null if no expiration", "nullable": true, "type": "string" }, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions for the key" } }, "required": ["key_id", "key", "name", "created_at", "expires_at", "acls"] }, "Error": { "type": "object", "properties": { "code": {"$ref": "#/components/schemas/APIErrorCode"}, "message": {"type": "string", "description": "Human-readable error message"}, "errors": { "type": "array", "description": "Field-specific validation errors", "items": {"$ref": "#/components/schemas/ValidationErrorItem"} } }, "required": ["code", "message"] }, "APIErrorCode": { "type": "string", "enum": [ "ACCESS_DENIED", "ACCOUNT_DISABLED", "BAD_GATEWAY", "BAD_REQUEST", "BLUESKY_OAUTH_AUTHORIZATION_FAILED", "BLUESKY_OAUTH_CALLBACK_FAILED", "BLUESKY_OAUTH_NOT_ENABLED", "BLUESKY_OAUTH_SESSION_EXPIRED", "BLUESKY_OAUTH_STATE_INVALID", "ACCOUNT_SCHEDULED_FOR_DELETION", "ACCOUNT_SUSPENDED_PERMANENTLY", "ACCOUNT_SUSPENDED_TEMPORARILY", "ACCOUNT_SUSPICIOUS_ACTIVITY", "ACCOUNT_TOO_NEW_FOR_GUILD", "ACLS_MUST_BE_NON_EMPTY", "ADMIN_API_KEY_NOT_FOUND", "APPLICATION_NOT_FOUND", "APPLICATION_NOT_OWNED", "ALREADY_FRIENDS", "AUDIT_LOG_INDEXING", "BOTS_CANNOT_CREATE_GUILDS", "BOTS_CANNOT_SEND_FRIEND_REQUESTS", "BOT_ALREADY_IN_GUILD", "BOT_APPLICATION_NOT_FOUND", "BOT_IS_PRIVATE", "BOT_USER_AUTH_ENDPOINT_ACCESS_DENIED", "BOT_USER_AUTH_SESSION_CREATION_DENIED", "BOT_USER_GENERATION_FAILED", "BOT_USER_NOT_FOUND", "CALL_ALREADY_EXISTS", "CANNOT_EDIT_OTHER_USER_MESSAGE", "CANNOT_EXECUTE_ON_DM", "CANNOT_BLOCK_SYSTEM_USER", "CANNOT_MODIFY_SYSTEM_WEBHOOK", "CANNOT_MODIFY_VOICE_STATE", "CANNOT_REDEEM_PLUTONIUM_WITH_VISIONARY", "CANNOT_REPORT_GUILD", "CANNOT_REPORT_OWN_GUILD", "CANNOT_REPORT_OWN_MESSAGE", "CANNOT_REPORT_YOURSELF", "CANNOT_SEND_EMPTY_MESSAGE", "CANNOT_SEND_FRIEND_REQUEST_TO_BLOCKED_USER", "CANNOT_SEND_FRIEND_REQUEST_TO_SELF", "CANNOT_SEND_MESSAGES_IN_NON_TEXT_CHANNEL", "CANNOT_SEND_MESSAGES_TO_USER", "CANNOT_TRANSFER_OWNERSHIP_TO_BOT", "CANNOT_SHRINK_RESERVED_SLOTS", "CAPTCHA_REQUIRED", "CHANNEL_INDEXING", "COMMUNICATION_DISABLED", "CONNECTION_ALREADY_EXISTS", "CONNECTION_INITIATION_TOKEN_INVALID", "CONNECTION_INVALID_IDENTIFIER", "CONNECTION_INVALID_TYPE", "CONNECTION_LIMIT_REACHED", "CONNECTION_NOT_FOUND", "CONNECTION_VERIFICATION_FAILED", "CONFLICT", "CONTENT_BLOCKED", "CREATION_FAILED", "DECRYPTION_FAILED", "DELETION_FAILED", "DISCOVERY_ALREADY_APPLIED", "DISCOVERY_APPLICATION_ALREADY_REVIEWED", "DISCOVERY_APPLICATION_NOT_FOUND", "DISCOVERY_DESCRIPTION_REQUIRED", "DISCOVERY_DISABLED", "DISCOVERY_INSUFFICIENT_MEMBERS", "DISCOVERY_INVALID_CATEGORY", "DISCOVERY_NOT_DISCOVERABLE", "DISCRIMINATOR_REQUIRED", "EMAIL_SERVICE_NOT_TESTABLE", "EMAIL_VERIFICATION_REQUIRED", "CANARY_TESTER_EMAIL_VERIFICATION_REQUIRED", "DIRECT_MESSAGE_EMAIL_VERIFICATION_REQUIRED", "FRIEND_REQUEST_EMAIL_VERIFICATION_REQUIRED", "GUILD_CREATION_EMAIL_VERIFICATION_REQUIRED", "GUILD_EMAIL_VERIFICATION_REQUIRED", "MFA_EMAIL_VERIFICATION_REQUIRED", "PROFILE_EMAIL_VERIFICATION_REQUIRED", "PURCHASE_EMAIL_VERIFICATION_REQUIRED", "REACTION_EMAIL_VERIFICATION_REQUIRED", "REPORT_EMAIL_VERIFICATION_REQUIRED", "REGISTRATION_CLOSED", "REGISTRATION_PENDING_APPROVAL", "REGISTRATION_REJECTED", "REGISTRATION_URL_INVALID", "EMPTY_ENCRYPTED_BODY", "ENCRYPTION_FAILED", "EU_WITHDRAWAL_WAIVER_REQUIRED", "EXPLICIT_CONTENT_CANNOT_BE_SENT", "FEATURE_NOT_AVAILABLE_SELF_HOSTED", "FEATURE_TEMPORARILY_DISABLED", "FILE_SIZE_TOO_LARGE", "FORBIDDEN", "FRIEND_REQUEST_BLOCKED", "GATEWAY_TIMEOUT", "GENERAL_ERROR", "GONE", "GIFT_CODE_ALREADY_REDEEMED", "GUILD_PHONE_VERIFICATION_REQUIRED", "GUILD_TEMPLATE_FETCH_FAILED", "GUILD_TEMPLATE_INVALID", "GUILD_VERIFICATION_REQUIRED", "HANDOFF_CODE_EXPIRED", "HARVEST_EXPIRED", "HARVEST_FAILED", "HARVEST_NOT_READY", "HTTP_GET_AUTHORIZE_NOT_SUPPORTED", "INSTANCE_VERSION_MISMATCH", "INTERNAL_SERVER_ERROR", "INVALID_ACLS_FORMAT", "INVALID_API_ORIGIN", "INVALID_AUTH_TOKEN", "INVALID_BOT_FLAG", "INVALID_CAPTCHA", "INVALID_CHANNEL_TYPE_FOR_CALL", "INVALID_CHANNEL_TYPE", "INVALID_CLIENT", "INVALID_CLIENT_SECRET", "INVALID_DSA_REPORT_TARGET", "INVALID_DSA_TICKET", "INVALID_DSA_VERIFICATION_CODE", "INVALID_DECRYPTED_JSON", "INVALID_EPHEMERAL_KEY", "INVALID_FLAGS_FORMAT", "INVALID_IV", "INVALID_FORM_BODY", "INVALID_GRANT", "INVALID_HANDOFF_CODE", "INVALID_PACK_TYPE", "INVALID_PERMISSIONS_INTEGER", "INVALID_PERMISSIONS_NEGATIVE", "INVALID_PHONE_NUMBER", "INVALID_PHONE_VERIFICATION_CODE", "INVALID_REDIRECT_URI", "INVALID_REQUEST", "INVALID_RESPONSE_TYPE_FOR_NON_BOT", "INVALID_SCOPE", "INVALID_STREAM_KEY_FORMAT", "INVALID_STREAM_THUMBNAIL_PAYLOAD", "INVALID_SUDO_TOKEN", "INVALID_SUSPICIOUS_FLAGS_FORMAT", "INVALID_SYSTEM_FLAG", "INVALID_TIMESTAMP", "INVALID_TOKEN", "INVALID_WEBAUTHN_AUTHENTICATION_COUNTER", "INVALID_WEBAUTHN_CREDENTIAL_COUNTER", "INVALID_WEBAUTHN_CREDENTIAL", "INVALID_WEBAUTHN_PUBLIC_KEY_FORMAT", "INVITES_DISABLED", "IP_AUTHORIZATION_REQUIRED", "IP_AUTHORIZATION_RESEND_COOLDOWN", "IP_AUTHORIZATION_RESEND_LIMIT_EXCEEDED", "GLOBAL_IP_BANNED", "GLOBAL_IP_TEMPORARILY_BANNED", "IP_BANNED", "RESIDENTIAL_PROXY_BLOCKED", "TOR_BLOCKED", "MAX_ANIMATED_EMOJIS", "MAX_APPLICATIONS", "MAX_BOOKMARKS", "MAX_CATEGORY_CHANNELS", "MAX_EMOJIS", "MAX_FAVORITE_MEMES", "MAX_FRIENDS", "MAX_GROUP_DM_RECIPIENTS", "MAX_GROUP_DMS", "GROUP_DM_RECIPIENTS_NOT_ADDABLE", "MAX_GUILD_CHANNELS", "MAX_GUILD_MEMBERS", "MAX_GUILD_ROLES", "MAX_GUILDS", "NEW_ACCOUNT_GUILD_JOIN_RATE_LIMITED", "MAX_INVITES", "MAX_PACK_EXPRESSIONS", "MAX_PACKS", "MAX_PINS_PER_CHANNEL", "MESSAGE_TOTAL_ATTACHMENT_SIZE_TOO_LARGE", "MAX_REACTIONS", "MAX_STICKERS", "MAX_WEBHOOKS_PER_CHANNEL", "MAX_WEBHOOKS_PER_GUILD", "MAX_WEBHOOKS", "NCMEC_ALREADY_SUBMITTED", "NCMEC_SUBMISSION_FAILED", "MEDIA_METADATA_ERROR", "METHOD_NOT_ALLOWED", "MISSING_ACCESS", "MISSING_ACL", "MISSING_AUTHORIZATION", "MISSING_CLIENT_SECRET", "MISSING_EPHEMERAL_KEY", "MISSING_IV", "MISSING_OAUTH_FIELDS", "MISSING_OAUTH_SCOPE", "MISSING_PERMISSIONS", "MISSING_REDIRECT_URI", "NO_ACTIVE_CALL", "NO_ACTIVE_SUBSCRIPTION", "NOT_FOUND", "NOT_IMPLEMENTED", "NO_PASSKEYS_REGISTERED", "NO_PENDING_DELETION", "NO_USERS_WITH_FLUXERTAG_EXIST", "NO_VISIONARY_SLOTS_AVAILABLE", "NOT_A_BOT_APPLICATION", "NOT_FRIENDS_WITH_USER", "NOT_OWNER_OF_ADMIN_API_KEY", "NSFW_CONTENT_AGE_RESTRICTED", "NSFW_EMOJI_STICKER_BLOCKED", "PACK_ACCESS_DENIED", "PASSKEY_AUTHENTICATION_FAILED", "PASSKEYS_DISABLED", "PHONE_ADD_NOT_ELIGIBLE", "PHONE_ALREADY_USED", "PHONE_RATE_LIMIT_EXCEEDED", "PHONE_VERIFICATION_REQUIRED", "PREMIUM_PURCHASE_BLOCKED", "PREVIEW_MUST_BE_JPEG", "PROCESSING_FAILED", "RATE_LIMITED", "REDIRECT_URI_REQUIRED_FOR_NON_BOT", "REPORT_ALREADY_RESOLVED", "REPORT_BANNED", "RESPONSE_VALIDATION_ERROR", "RESOURCE_LOCKED", "SERVICE_UNAVAILABLE", "SESSION_TOKEN_MISMATCH", "SINGLE_COMMUNITY_CANNOT_CREATE_GUILDS", "SINGLE_COMMUNITY_CANNOT_DELETE", "SINGLE_COMMUNITY_CANNOT_LEAVE", "INSTANCE_POLICY_TRANSITION_NOT_ALLOWED", "SLOWMODE_RATE_LIMITED", "SMS_VERIFICATION_UNAVAILABLE", "SSO_REQUIRED", "STREAM_KEY_CHANNEL_MISMATCH", "STREAM_KEY_SCOPE_MISMATCH", "STREAM_THUMBNAIL_PAYLOAD_EMPTY", "STRIPE_ERROR", "STRIPE_GIFT_REDEMPTION_IN_PROGRESS", "STRIPE_INVALID_PRODUCT", "STRIPE_INVALID_PRODUCT_CONFIGURATION", "STRIPE_NO_ACTIVE_SUBSCRIPTION", "STRIPE_NO_PURCHASE_HISTORY", "STRIPE_REFUND_OUTSIDE_WINDOW", "STRIPE_REFUND_COOLDOWN_ACTIVE", "STRIPE_NO_SUBSCRIPTION", "STRIPE_PAYMENT_NOT_AVAILABLE", "STRIPE_SUBSCRIPTION_ALREADY_CANCELING", "STRIPE_SUBSCRIPTION_NOT_CANCELING", "STRIPE_SUBSCRIPTION_PERIOD_END_MISSING", "STRIPE_WEBHOOK_NOT_AVAILABLE", "STRIPE_WEBHOOK_SIGNATURE_INVALID", "STRIPE_WEBHOOK_SIGNATURE_MISSING", "DIRECT_MESSAGES_DISABLED", "DONATION_AMOUNT_INVALID", "DONATION_MAGIC_LINK_EXPIRED", "DONATION_MAGIC_LINK_INVALID", "DONATION_MAGIC_LINK_USED", "DONOR_NOT_FOUND", "SUDO_MODE_REQUIRED", "TAG_ALREADY_TAKEN", "TEMPORARY_INVITE_REQUIRES_PRESENCE", "TEST_HARNESS_DISABLED", "TEST_HARNESS_FORBIDDEN", "TWO_FA_NOT_ENABLED", "TWO_FACTOR_REQUIRED", "UNAUTHORIZED", "UNCLAIMED_ACCOUNT_CANNOT_ACCEPT_FRIEND_REQUESTS", "UNCLAIMED_ACCOUNT_CANNOT_ADD_REACTIONS", "UNCLAIMED_ACCOUNT_CANNOT_CREATE_APPLICATIONS", "UNCLAIMED_ACCOUNT_CANNOT_CREATE_GUILDS", "UNCLAIMED_ACCOUNT_CANNOT_JOIN_GROUP_DMS", "UNCLAIMED_ACCOUNT_CANNOT_JOIN_ONE_ON_ONE_VOICE_CALLS", "UNCLAIMED_ACCOUNT_CANNOT_JOIN_VOICE_CHANNELS", "UNCLAIMED_ACCOUNT_CANNOT_MAKE_PURCHASES", "UNCLAIMED_ACCOUNT_CANNOT_SEND_DIRECT_MESSAGES", "UNCLAIMED_ACCOUNT_CANNOT_SEND_FRIEND_REQUESTS", "UNCLAIMED_ACCOUNT_CANNOT_SEND_MESSAGES", "UNCLAIMED_ACCOUNT_CANNOT_SUBMIT_REPORTS", "UNKNOWN_CHANNEL", "UNKNOWN_EMOJI", "UNKNOWN_FAVORITE_MEME", "UNKNOWN_GIFT_CODE", "UNKNOWN_GUILD", "UNKNOWN_HARVEST", "UNKNOWN_INVITE", "UNKNOWN_MEMBER", "UNKNOWN_MESSAGE", "UNKNOWN_PACK", "UNKNOWN_REPORT", "UNKNOWN_ROLE", "UNKNOWN_STICKER", "UNKNOWN_SUSPICIOUS_FLAG", "UNKNOWN_USER_FLAG", "UNKNOWN_USER", "UNKNOWN_VOICE_REGION", "UNKNOWN_VOICE_SERVER", "UNKNOWN_WEBAUTHN_CREDENTIAL", "UNKNOWN_APPLICATION", "UNKNOWN_WEBHOOK", "UNFURL_STREAM_TOO_LARGE", "UNSUPPORTED_RESPONSE_TYPE", "USERNAME_NOT_AVAILABLE", "UPDATE_FAILED", "USER_BANNED_FROM_GUILD", "USER_IP_BANNED_FROM_GUILD", "USER_NOT_IN_VOICE", "USER_OWNS_GUILDS", "VALIDATION_ERROR", "VOICE_CHANNEL_FULL", "WEBAUTHN_CREDENTIAL_LIMIT_REACHED", "AGE_VERIFICATION_ALREADY_VERIFIED", "AGE_VERIFICATION_INVALID_CARD_TYPE" ], "description": "Error codes returned by API operations" }, "ValidationErrorItem": { "type": "object", "properties": { "field": {"type": "string", "description": "Field path that failed validation"}, "code": {"type": "string", "description": "Machine-readable validation error code"}, "message": {"type": "string", "description": "Human-readable validation error message"} }, "required": ["field", "code", "message"] }, "CreateAdminApiKeyRequest": { "type": "object", "properties": { "name": {"type": "string", "minLength": 1, "maxLength": 100, "description": "Display name for the API key"}, "expires_in_days": { "type": "integer", "minimum": 1, "maximum": 365, "format": "int32", "description": "Number of days until the key expires" }, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions for the key" } }, "required": ["name", "acls"] }, "ListAdminApiKeyResponse": { "type": "object", "properties": { "key_id": {"type": "string", "description": "Unique identifier for the API key"}, "name": {"type": "string", "description": "Display name for the API key"}, "created_at": {"type": "string", "description": "ISO 8601 timestamp when the key was created"}, "last_used_at": { "description": "ISO 8601 timestamp when the key was last used, or null if never used", "nullable": true, "type": "string" }, "expires_at": { "description": "ISO 8601 timestamp when the key expires, or null if no expiration", "nullable": true, "type": "string" }, "created_by_user_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "User ID of the admin who created this key" }, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions for the key" } }, "required": ["key_id", "name", "created_at", "last_used_at", "expires_at", "created_by_user_id", "acls"] }, "DeleteApiKeyResponse": { "type": "object", "properties": {"success": {"type": "boolean", "enum": [true]}}, "required": ["success"] }, "ListGuildApplicationsResponse": { "type": "object", "properties": { "applications": {"type": "array", "items": {"$ref": "#/components/schemas/ApplicationAdminResponse"}} }, "required": ["applications"] }, "ApplicationAdminResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this application" }, "name": {"type": "string", "description": "The display name of the application"}, "owner_user_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The user ID that owns this application" }, "owner_username": { "description": "The username of the owner, if resolvable", "nullable": true, "type": "string" }, "owner_global_name": { "description": "The display name of the owner, if set", "nullable": true, "type": "string" }, "owner_discriminator": { "description": "The discriminator of the owner, if resolvable", "nullable": true, "type": "string" }, "bot_user_id": { "description": "The user ID of the associated bot user, if any", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "bot_username": {"description": "The username of the bot user, if any", "nullable": true, "type": "string"}, "bot_global_name": { "description": "The display name of the bot user, if set", "nullable": true, "type": "string" }, "bot_discriminator": { "description": "The discriminator of the bot user, if any", "nullable": true, "type": "string" }, "bot_is_public": {"type": "boolean", "description": "Whether the bot is publicly joinable"}, "bot_require_code_grant": { "type": "boolean", "description": "Whether an OAuth2 code grant is required for this bot" }, "oauth2_redirect_uris": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Registered OAuth2 redirect URIs" }, "has_client_secret": { "type": "boolean", "description": "Whether a hashed client secret is stored for this application" }, "has_bot_token": { "type": "boolean", "description": "Whether a hashed bot token is stored for this application" }, "bot_token_preview": { "description": "The preview (last few characters) of the bot token, if any", "nullable": true, "type": "string" }, "bot_token_created_at": { "description": "ISO 8601 timestamp when the bot token was created", "nullable": true, "type": "string", "format": "date-time" }, "client_secret_created_at": { "description": "ISO 8601 timestamp when the client secret was created", "nullable": true, "type": "string", "format": "date-time" }, "version": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The optimistic locking version of the application record" } }, "required": [ "id", "name", "owner_user_id", "owner_username", "owner_global_name", "owner_discriminator", "bot_user_id", "bot_username", "bot_global_name", "bot_discriminator", "bot_is_public", "bot_require_code_grant", "oauth2_redirect_uris", "has_client_secret", "has_bot_token", "bot_token_preview", "bot_token_created_at", "client_secret_created_at", "version" ] }, "SnowflakeType": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "format": "snowflake"}, "ListGuildApplicationsRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "ListUserApplicationsResponse": { "type": "object", "properties": { "applications": {"type": "array", "items": {"$ref": "#/components/schemas/ApplicationAdminResponse"}} }, "required": ["applications"] }, "ListUserApplicationsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "LookupApplicationResponse": { "type": "object", "properties": { "application": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/ApplicationAdminResponse"}]} }, "required": ["application"] }, "LookupApplicationRequest": { "type": "object", "properties": {"application_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["application_id"] }, "ApplicationUpdateResponse": { "type": "object", "properties": {"application": {"$ref": "#/components/schemas/ApplicationAdminResponse"}}, "required": ["application"] }, "TransferApplicationOwnershipRequest": { "type": "object", "properties": { "application_id": {"$ref": "#/components/schemas/SnowflakeType"}, "new_owner_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["application_id", "new_owner_id"] }, "AdminArchiveResponseSchema": { "type": "object", "properties": { "archive_id": {"$ref": "#/components/schemas/SnowflakeType"}, "subject_type": { "type": "string", "enum": ["user", "guild"], "description": "Type of subject being archived" }, "subject_id": {"$ref": "#/components/schemas/SnowflakeType"}, "requested_by": {"$ref": "#/components/schemas/SnowflakeType"}, "requested_at": {"type": "string"}, "started_at": {"nullable": true, "type": "string"}, "completed_at": {"nullable": true, "type": "string"}, "failed_at": {"nullable": true, "type": "string"}, "file_size": {"nullable": true, "type": "string"}, "progress_percent": {"type": "number"}, "progress_step": {"nullable": true, "type": "string"}, "error_message": {"nullable": true, "type": "string"}, "download_url_expires_at": {"nullable": true, "type": "string"}, "expires_at": {"nullable": true, "type": "string"} }, "required": [ "archive_id", "subject_type", "subject_id", "requested_by", "requested_at", "started_at", "completed_at", "failed_at", "file_size", "progress_percent", "progress_step", "error_message", "download_url_expires_at", "expires_at" ] }, "TriggerGuildArchiveRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "include_attachments": { "type": "boolean", "description": "Whether to include attachment binaries in the archive" } }, "required": ["guild_id"] }, "ListArchivesResponseSchema": { "type": "object", "properties": { "archives": {"type": "array", "items": {"$ref": "#/components/schemas/AdminArchiveResponseSchema"}} }, "required": ["archives"] }, "ListArchivesRequest": { "type": "object", "properties": { "subject_type": { "type": "string", "enum": ["user", "guild", "all"], "description": "Type of archives to list" }, "subject_id": {"$ref": "#/components/schemas/SnowflakeType"}, "requested_by": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": { "type": "number", "minimum": 1, "maximum": 200, "description": "Maximum number of archives to return" }, "include_expired": {"type": "boolean", "description": "Whether to include expired archives"} } }, "TriggerUserArchiveRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "include_attachments": { "type": "boolean", "description": "Whether to include attachment binaries in the archive" } }, "required": ["user_id"] }, "GetArchiveResponseSchema": { "type": "object", "properties": { "archive": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/AdminArchiveResponseSchema"}]} }, "required": ["archive"] }, "DownloadUrlResponseSchema": { "type": "object", "properties": {"downloadUrl": {"type": "string"}, "expiresAt": {"type": "string"}}, "required": ["downloadUrl", "expiresAt"] }, "PurgeGuildAssetsResponseSchema": { "type": "object", "properties": { "processed": {"type": "array", "items": {"$ref": "#/components/schemas/PurgeGuildAssetResultSchema"}}, "errors": {"type": "array", "items": {"$ref": "#/components/schemas/PurgeGuildAssetErrorSchema"}} }, "required": ["processed", "errors"] }, "PurgeGuildAssetResultSchema": { "type": "object", "properties": { "id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Unique identifier of the asset"}, "asset_type": { "type": "string", "enum": ["emoji", "sticker", "unknown"], "description": "Type of guild asset" }, "found_in_db": {"type": "boolean", "description": "Whether the asset was found in the database"}, "guild_id": { "description": "ID of the guild the asset belongs to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "guild_nsfw_level": { "description": "NSFW level of the guild the asset belongs to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] } }, "required": ["id", "asset_type", "found_in_db", "guild_id", "guild_nsfw_level"] }, "NSFWLevel": {"type": "integer", "format": "int32", "enum": [0, 3], "description": "The NSFW level of the guild"}, "PurgeGuildAssetErrorSchema": { "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "error": {"type": "string"}}, "required": ["id", "error"] }, "PurgeGuildAssetsRequest": { "type": "object", "properties": { "ids": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of asset IDs to purge" } }, "required": ["ids"] }, "AuditLogsListResponseSchema": { "type": "object", "properties": { "logs": { "type": "array", "items": { "type": "object", "properties": { "log_id": {"$ref": "#/components/schemas/SnowflakeType"}, "admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "admin_user": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] }, "target_type": {"type": "string"}, "target_id": { "type": "string", "description": "The ID of the affected entity (user, channel, role, invite code, etc.)" }, "target_user": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] }, "target_guild": { "nullable": true, "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}}, "required": ["id", "name"] }, "target_channel": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["id", "name", "type", "guild_id"] }, "related_users": { "type": "object", "additionalProperties": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] }, "patternProperties": { "^(0|[1-9][0-9]*)$": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name"] } } }, "related_guilds": { "type": "object", "additionalProperties": { "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}}, "required": ["id", "name"] }, "patternProperties": { "^(0|[1-9][0-9]*)$": { "type": "object", "properties": {"id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}}, "required": ["id", "name"] } } }, "related_channels": { "type": "object", "additionalProperties": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["id", "name", "type", "guild_id"] }, "patternProperties": { "^(0|[1-9][0-9]*)$": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["id", "name", "type", "guild_id"] } } }, "action": {"type": "string"}, "audit_log_reason": {"nullable": true, "type": "string"}, "metadata": {"type": "object", "additionalProperties": {"type": "string"}}, "created_at": {"type": "string"} }, "required": [ "log_id", "admin_user_id", "admin_user", "target_type", "target_id", "target_user", "target_guild", "target_channel", "related_users", "related_guilds", "related_channels", "action", "audit_log_reason", "metadata", "created_at" ] } }, "total": {"type": "number"} }, "required": ["logs", "total"] }, "ListAuditLogsRequest": { "type": "object", "properties": { "admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "target_type": {"type": "string", "description": "Filter by target entity type"}, "target_id": { "type": "string", "description": "Filter by target entity ID (user, channel, role, invite code, etc.)" }, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of entries to skip" } } }, "SearchAuditLogsRequest": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query string"}, "admin_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "target_type": {"type": "string", "description": "Filter by target entity type"}, "target_id": { "type": "string", "description": "Filter by target entity ID (user, channel, role, invite code, etc.)" }, "sort_by": { "type": "string", "enum": ["createdAt", "relevance"], "description": "Field to sort audit logs by" }, "sort_order": {"type": "string", "enum": ["asc", "desc"], "description": "Sort order direction"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of entries to skip" } } }, "BanAvatarHashRequest": { "type": "object", "properties": { "hashes": {"type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 1000}, "category": {"type": "string"}, "severity": {"type": "integer", "minimum": 0, "maximum": 3, "format": "int32"}, "source_url": {"type": "string"}, "reason": {"type": "string"}, "notes": {"type": "string"} }, "required": ["hashes"] }, "BanCheckResponseSchema": { "type": "object", "properties": {"banned": {"type": "boolean"}}, "required": ["banned"] }, "CheckAvatarHashRequest": { "type": "object", "properties": {"hashes": {"type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 1000}}, "required": ["hashes"] }, "BanEmailRequest": { "type": "object", "properties": {"email": {"$ref": "#/components/schemas/EmailType"}}, "required": ["email"] }, "EmailType": {"type": "string", "format": "email"}, "BanFileShaRequest": { "type": "object", "properties": { "sha256_hex": {"type": "string", "description": "SHA-256 in hex"}, "category": {"type": "string"}, "severity": {"type": "integer", "minimum": 0, "maximum": 3, "format": "int32"}, "content_type": {"type": "string", "description": "Optional MIME type hint for observability"}, "source_url": {"type": "string"}, "notes": {"type": "string"} }, "required": ["sha256_hex"] }, "BulkJobResponse": { "type": "object", "properties": {"job_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["job_id"] }, "BulkBanFileShasRequest": { "type": "object", "properties": { "sha256_list": { "type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 10000, "description": "Array of SHA-256 hex strings to ban" } }, "required": ["sha256_list"] }, "CheckFileShaRequest": { "type": "object", "properties": {"sha256_hex": {"type": "string"}}, "required": ["sha256_hex"] }, "UnbanFileShaRequest": { "type": "object", "properties": {"sha256_hex": {"type": "string"}}, "required": ["sha256_hex"] }, "BanIpRequest": { "type": "object", "properties": {"ip": {"type": "string", "description": "IPv4/IPv6 address or CIDR range to ban"}}, "required": ["ip"] }, "BanPhraseRequest": { "type": "object", "properties": { "phrase": { "type": "string", "description": "Phrase to ban. Matching is case-insensitive and also normalizes common bypass tricks such as inserted whitespace, punctuation, invisible characters, and compatibility glyphs." } }, "required": ["phrase"] }, "BanProfileSubstringRequest": { "type": "object", "properties": { "scope": {"enum": ["username", "global_name", "nickname", "bio", "pronouns"], "type": "string"}, "substrings": {"type": "array", "items": {"type": "string"}, "minItems": 1, "maxItems": 1000}, "reason": {"type": "string"}, "notes": {"type": "string"} }, "required": ["scope", "substrings"] }, "BanUrlDomainRequest": { "type": "object", "properties": { "domain": {"type": "string", "description": "Domain to ban (e.g. example.com)"}, "match_subdomains": { "type": "boolean", "description": "If true, any subdomain rooted at this domain is also banned" }, "category": {"type": "string", "description": "Category / source slug (defaults to \"manual\")"}, "severity": { "type": "integer", "minimum": 0, "maximum": 3, "format": "int32", "description": "Severity: 0 allow, 1 warn, 2 block, 3 block+report (default 2)" }, "source_url": {"type": "string", "description": "Upstream source URL if imported from a feed"}, "notes": {"type": "string", "description": "Internal notes for audit trail"} }, "required": ["domain"] }, "UnbanUrlDomainRequest": { "type": "object", "properties": {"domain": {"type": "string", "description": "Domain to unban"}}, "required": ["domain"] }, "BanUrlRequest": { "type": "object", "properties": { "url": {"type": "string", "description": "Absolute URL to ban. Canonicalized before storage."}, "category": {"type": "string", "description": "Category / source slug (defaults to \"manual\")"}, "severity": { "type": "integer", "minimum": 0, "maximum": 3, "format": "int32", "description": "Severity: 0 allow, 1 warn, 2 block, 3 block+report (default 2)" }, "source_url": {"type": "string", "description": "Upstream source URL if imported from a feed"}, "notes": {"type": "string", "description": "Internal notes for audit trail"} }, "required": ["url"] }, "CheckUrlBlocklistRequest": { "type": "object", "properties": {"url": {"type": "string", "description": "URL to check against the blocklist"}}, "required": ["url"] }, "UnbanUrlRequest": { "type": "object", "properties": { "url": {"type": "string", "description": "URL to unban (must match the canonicalized form in storage)"} }, "required": ["url"] }, "AdminBillingOverviewResponse": { "type": "object", "properties": { "subscription": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/AdminSubscriptionResponse"}]}, "payments": { "type": "array", "items": { "type": "object", "properties": { "checkout_session_id": {"nullable": true, "type": "string"}, "user_id": {"type": "string"}, "stripe_customer_id": {"nullable": true, "type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "resolved_payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "subscription_id": {"nullable": true, "type": "string"}, "invoice_id": {"nullable": true, "type": "string"}, "price_id": {"nullable": true, "type": "string"}, "product_type": {"nullable": true, "type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"type": "string"}, "stripe_source": {"enum": ["invoice"], "type": "string"}, "refundable_via_payment_intent": {"type": "boolean"}, "refunded_amount_cents": {"type": "number"}, "net_amount_cents": {"type": "number"}, "refunds": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"nullable": true, "type": "string"}, "reason": {"nullable": true, "type": "string"}, "created": {"type": "number"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"} }, "required": [ "id", "amount_cents", "currency", "status", "reason", "created", "payment_intent_id", "charge_id" ] } }, "payment_method_type": {"nullable": true, "type": "string"}, "payment_method_brand": {"nullable": true, "type": "string"}, "payment_method_last4": {"nullable": true, "type": "string"}, "stripe_payment_method_country_code": {"nullable": true, "type": "string"}, "stripe_billing_country_code": {"nullable": true, "type": "string"}, "stripe_customer_country_code": {"nullable": true, "type": "string"}, "stripe_terms_of_service_accepted": {"nullable": true, "type": "boolean"}, "is_gift": {"type": "boolean"}, "gift_code": {"nullable": true, "type": "string"}, "purchase_geoip_country_code": {"nullable": true, "type": "string"}, "purchase_client_country_code": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_required": {"type": "boolean"}, "eu_withdrawal_waiver_accepted": {"type": "boolean"}, "eu_withdrawal_waiver_accepted_at": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_text_version": {"nullable": true, "type": "string"}, "created_at": {"type": "string"}, "completed_at": {"nullable": true, "type": "string"} }, "required": [ "checkout_session_id", "user_id", "stripe_customer_id", "payment_intent_id", "resolved_payment_intent_id", "charge_id", "subscription_id", "invoice_id", "price_id", "product_type", "amount_cents", "currency", "status", "stripe_source", "refundable_via_payment_intent", "refunded_amount_cents", "net_amount_cents", "refunds", "payment_method_type", "payment_method_brand", "payment_method_last4", "stripe_payment_method_country_code", "stripe_billing_country_code", "stripe_customer_country_code", "stripe_terms_of_service_accepted", "is_gift", "gift_code", "purchase_geoip_country_code", "purchase_client_country_code", "eu_withdrawal_waiver_required", "eu_withdrawal_waiver_accepted", "eu_withdrawal_waiver_accepted_at", "eu_withdrawal_waiver_text_version", "created_at", "completed_at" ] } }, "payment_methods": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "type": {"type": "string"}, "card_brand": {"nullable": true, "type": "string"}, "card_last4": {"nullable": true, "type": "string"}, "card_exp_month": {"nullable": true, "type": "number"}, "card_exp_year": {"nullable": true, "type": "number"}, "created": {"type": "number"} }, "required": ["id", "type", "card_brand", "card_last4", "card_exp_month", "card_exp_year", "created"] } }, "stripe_customer_id": {"nullable": true, "type": "string"} }, "required": ["subscription", "payments", "payment_methods", "stripe_customer_id"] }, "AdminSubscriptionResponse": { "type": "object", "properties": { "id": {"type": "string"}, "status": {"type": "string"}, "current_period_start": {"nullable": true, "type": "string"}, "current_period_end": {"nullable": true, "type": "string"}, "cancel_at_period_end": {"type": "boolean"}, "cancel_at": {"nullable": true, "type": "string"}, "canceled_at": {"nullable": true, "type": "string"}, "plan_interval": {"nullable": true, "type": "string"}, "plan_amount_cents": {"nullable": true, "type": "number"}, "plan_currency": {"nullable": true, "type": "string"}, "default_payment_method_id": {"nullable": true, "type": "string"} }, "required": [ "id", "status", "current_period_start", "current_period_end", "cancel_at_period_end", "cancel_at", "canceled_at", "plan_interval", "plan_amount_cents", "plan_currency", "default_payment_method_id" ] }, "AdminBillingCancelImmediatelyRequest": { "type": "object", "properties": {"reason": {"type": "string", "minLength": 1, "maxLength": 512}} }, "AdminInvoiceListResponse": { "type": "object", "properties": { "invoices": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "amount_due": {"type": "number"}, "amount_paid": {"type": "number"}, "currency": {"type": "string"}, "status": {"nullable": true, "type": "string"}, "created": {"type": "number"}, "billing_reason": {"nullable": true, "type": "string"}, "subscription_id": {"nullable": true, "type": "string"}, "payment_type": {"nullable": true, "type": "string"}, "payment_status": {"nullable": true, "type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "paid_at": {"nullable": true, "type": "string"}, "hosted_invoice_url": {"nullable": true, "type": "string"}, "invoice_pdf": {"nullable": true, "type": "string"} }, "required": [ "id", "amount_due", "amount_paid", "currency", "status", "created", "billing_reason", "subscription_id", "payment_type", "payment_status", "payment_intent_id", "charge_id", "paid_at", "hosted_invoice_url", "invoice_pdf" ] } }, "has_more": {"type": "boolean"} }, "required": ["invoices", "has_more"] }, "AdminPaymentMethodListResponse": { "type": "object", "properties": { "payment_methods": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "type": {"type": "string"}, "card_brand": {"nullable": true, "type": "string"}, "card_last4": {"nullable": true, "type": "string"}, "card_exp_month": {"nullable": true, "type": "number"}, "card_exp_year": {"nullable": true, "type": "number"}, "created": {"type": "number"} }, "required": ["id", "type", "card_brand", "card_last4", "card_exp_month", "card_exp_year", "created"] } } }, "required": ["payment_methods"] }, "AdminPaymentListResponse": { "type": "object", "properties": { "payments": { "type": "array", "items": { "type": "object", "properties": { "checkout_session_id": {"nullable": true, "type": "string"}, "user_id": {"type": "string"}, "stripe_customer_id": {"nullable": true, "type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "resolved_payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "subscription_id": {"nullable": true, "type": "string"}, "invoice_id": {"nullable": true, "type": "string"}, "price_id": {"nullable": true, "type": "string"}, "product_type": {"nullable": true, "type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"type": "string"}, "stripe_source": {"enum": ["invoice"], "type": "string"}, "refundable_via_payment_intent": {"type": "boolean"}, "refunded_amount_cents": {"type": "number"}, "net_amount_cents": {"type": "number"}, "refunds": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "amount_cents": {"type": "number"}, "currency": {"type": "string"}, "status": {"nullable": true, "type": "string"}, "reason": {"nullable": true, "type": "string"}, "created": {"type": "number"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"} }, "required": [ "id", "amount_cents", "currency", "status", "reason", "created", "payment_intent_id", "charge_id" ] } }, "payment_method_type": {"nullable": true, "type": "string"}, "payment_method_brand": {"nullable": true, "type": "string"}, "payment_method_last4": {"nullable": true, "type": "string"}, "stripe_payment_method_country_code": {"nullable": true, "type": "string"}, "stripe_billing_country_code": {"nullable": true, "type": "string"}, "stripe_customer_country_code": {"nullable": true, "type": "string"}, "stripe_terms_of_service_accepted": {"nullable": true, "type": "boolean"}, "is_gift": {"type": "boolean"}, "gift_code": {"nullable": true, "type": "string"}, "purchase_geoip_country_code": {"nullable": true, "type": "string"}, "purchase_client_country_code": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_required": {"type": "boolean"}, "eu_withdrawal_waiver_accepted": {"type": "boolean"}, "eu_withdrawal_waiver_accepted_at": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_text_version": {"nullable": true, "type": "string"}, "created_at": {"type": "string"}, "completed_at": {"nullable": true, "type": "string"} }, "required": [ "checkout_session_id", "user_id", "stripe_customer_id", "payment_intent_id", "resolved_payment_intent_id", "charge_id", "subscription_id", "invoice_id", "price_id", "product_type", "amount_cents", "currency", "status", "stripe_source", "refundable_via_payment_intent", "refunded_amount_cents", "net_amount_cents", "refunds", "payment_method_type", "payment_method_brand", "payment_method_last4", "stripe_payment_method_country_code", "stripe_billing_country_code", "stripe_customer_country_code", "stripe_terms_of_service_accepted", "is_gift", "gift_code", "purchase_geoip_country_code", "purchase_client_country_code", "eu_withdrawal_waiver_required", "eu_withdrawal_waiver_accepted", "eu_withdrawal_waiver_accepted_at", "eu_withdrawal_waiver_text_version", "created_at", "completed_at" ] } } }, "required": ["payments"] }, "AdminBillingRefundRequest": { "type": "object", "properties": { "payment_intent_id": {"type": "string"}, "amount_cents": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "reason": {"type": "string", "minLength": 1, "maxLength": 512} }, "required": ["payment_intent_id"] }, "AdminBillingRefundLatestInvoiceCancelResponse": { "type": "object", "properties": { "subscription_id": {"type": "string"}, "invoice_id": {"type": "string"}, "payment_intent_id": {"nullable": true, "type": "string"}, "charge_id": {"nullable": true, "type": "string"}, "refund_policy": {"enum": ["full_refund", "prorated_refund", "cancel_only"], "type": "string"}, "refund_policy_basis": {"enum": ["support_policy", "eu_eea_withdrawal_no_waiver"], "type": "string"}, "refund_id": {"nullable": true, "type": "string"}, "refunded_amount_cents": {"type": "number"}, "invoice_amount_paid_cents": {"type": "number"}, "currency": {"type": "string"}, "cycle_elapsed_days": {"type": "number"}, "purchase_geoip_country_code": {"nullable": true, "type": "string"}, "purchase_client_country_code": {"nullable": true, "type": "string"}, "stripe_payment_method_country_code": {"nullable": true, "type": "string"}, "stripe_billing_country_code": {"nullable": true, "type": "string"}, "stripe_customer_country_code": {"nullable": true, "type": "string"}, "stripe_terms_of_service_accepted": {"nullable": true, "type": "boolean"}, "eu_withdrawal_waiver_required": {"type": "boolean"}, "eu_withdrawal_waiver_accepted": {"type": "boolean"}, "eu_withdrawal_waiver_accepted_at": {"nullable": true, "type": "string"}, "eu_withdrawal_waiver_text_version": {"nullable": true, "type": "string"} }, "required": [ "subscription_id", "invoice_id", "payment_intent_id", "charge_id", "refund_policy", "refund_policy_basis", "refund_id", "refunded_amount_cents", "invoice_amount_paid_cents", "currency", "cycle_elapsed_days", "purchase_geoip_country_code", "purchase_client_country_code", "stripe_payment_method_country_code", "stripe_billing_country_code", "stripe_customer_country_code", "stripe_terms_of_service_accepted", "eu_withdrawal_waiver_required", "eu_withdrawal_waiver_accepted", "eu_withdrawal_waiver_accepted_at", "eu_withdrawal_waiver_text_version" ] }, "AdminBillingRefundLatestInvoiceCancelRequest": { "type": "object", "properties": {"reason": {"type": "string", "minLength": 1, "maxLength": 512}} }, "BulkAddGuildMembersRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to add as members" } }, "required": ["guild_id", "user_ids"] }, "BulkScheduleUserDeletionRequest": { "type": "object", "properties": { "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to schedule deletion for" }, "reason_code": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "Code indicating the reason for deletion" }, "public_reason": {"type": "string", "description": "Public-facing reason for the deletion"}, "days_until_deletion": { "type": "integer", "minimum": 1, "maximum": 365, "format": "int32", "description": "Number of days until the accounts are deleted" } }, "required": ["user_ids", "reason_code"] }, "BulkUpdateGuildFeaturesRequest": { "type": "object", "properties": { "guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of guild IDs to update" }, "add_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to add to all specified guilds" }, "remove_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to remove from all specified guilds" } }, "required": ["guild_ids"] }, "GuildFeatureSchema": { "type": "string", "description": "A guild feature flag Known values: ANIMATED_ICON, ANIMATED_BANNER, BANNER, CLONE_EMOJI_DISABLED, CLONE_STICKER_DISABLED, DETACHED_BANNER, INVITE_SPLASH, INVITES_DISABLED, RAID_DETECTED, TEXT_CHANNEL_FLEXIBLE_NAMES, HIDE_OWNER_CROWN, MORE_EMOJI, MORE_STICKERS, UNLIMITED_EMOJI, UNLIMITED_STICKERS, EXPRESSION_PURGE_ALLOWED, VANITY_URL, DISCOVERABLE, PARTNERED, VERIFIED, VIP_VOICE, VOICE_E2EE, UNAVAILABLE_FOR_EVERYONE, UNAVAILABLE_FOR_EVERYONE_BUT_STAFF, UNAVAILABLE_HIDDEN, VISIONARY, LARGE_GUILD_OVERRIDE, VERY_LARGE_GUILD (other values allowed)" }, "BulkUpdateSuspiciousActivityFlagsRequest": { "type": "object", "properties": { "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to update" }, "add_flags": { "type": "array", "items": {"type": "string"}, "maxItems": 32, "description": "Suspicious activity flag names to add to all specified users" }, "remove_flags": { "type": "array", "items": {"type": "string"}, "maxItems": 32, "description": "Suspicious activity flag names to remove from all specified users" } }, "required": ["user_ids"] }, "BulkUpdateUserFlagsRequest": { "type": "object", "properties": { "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of user IDs to update" }, "add_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to add to all specified users" }, "remove_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to remove from all specified users" } }, "required": ["user_ids"] }, "UserFlags": { "type": "string", "format": "int64", "pattern": "^[0-9]+$", "description": "A single user flag value to add or remove" }, "CodesResponse": { "type": "object", "properties": {"codes": {"type": "array", "items": {"type": "string"}}}, "required": ["codes"] }, "GenerateGiftCodesRequest": { "type": "object", "properties": { "count": { "type": "integer", "minimum": 1, "maximum": 100, "format": "int32", "description": "Number of gift codes to generate" }, "duration_type": { "type": "string", "enum": ["days", "weeks", "months", "years"], "description": "Duration unit for the generated gift codes" }, "duration_quantity": { "type": "integer", "minimum": 1, "maximum": 3650, "format": "int32", "description": "Duration quantity for the selected unit. Lifetime gifts are not supported." } }, "required": ["count", "duration_type", "duration_quantity"] }, "DiscoveryAdminPendingApplicationResponse": { "type": "object", "properties": { "guild_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild ID"}, "guild_name": {"type": "string", "description": "Guild name"}, "guild_icon": {"description": "Guild icon hash", "nullable": true, "type": "string"}, "guild_owner_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild owner user ID"}, "guild_owner_username": {"description": "Guild owner username", "nullable": true, "type": "string"}, "guild_owner_global_name": {"description": "Guild owner display name", "nullable": true, "type": "string"}, "guild_owner_discriminator": {"description": "Guild owner discriminator", "nullable": true, "type": "string"}, "guild_member_count": {"type": "number", "description": "Approximate member count"}, "guild_nsfw_level": { "description": "NSFW level of the guild", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] }, "guild_features": {"type": "array", "items": {"type": "string"}, "description": "Guild feature flags"}, "description": {"type": "string", "description": "Discovery description"}, "category_type": {"type": "number", "description": "Discovery category type"}, "primary_language": {"description": "Primary community language", "nullable": true, "type": "string"}, "custom_tags": {"type": "array", "items": {"type": "string"}, "description": "Custom discovery tags"}, "applied_at": {"type": "string", "description": "Application timestamp"} }, "required": [ "guild_id", "guild_name", "guild_icon", "guild_owner_id", "guild_owner_username", "guild_owner_global_name", "guild_owner_discriminator", "guild_member_count", "guild_nsfw_level", "guild_features", "description", "category_type", "primary_language", "custom_tags", "applied_at" ] }, "DiscoveryApplicationResponse": { "type": "object", "properties": { "guild_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild ID"}, "guild_nsfw_level": { "description": "NSFW level of the guild", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] }, "status": {"type": "string", "description": "Application status"}, "description": {"type": "string", "description": "Discovery description"}, "category_type": {"type": "number", "description": "Discovery category type"}, "primary_language": {"description": "Primary community language", "nullable": true, "type": "string"}, "custom_tags": {"type": "array", "items": {"type": "string"}, "description": "Custom discovery tags"}, "applied_at": {"type": "string", "description": "Application timestamp"}, "reviewed_at": {"description": "Review timestamp", "nullable": true, "type": "string"}, "review_reason": {"description": "Review reason (approval/rejection)", "nullable": true, "type": "string"}, "removed_at": {"description": "Removal timestamp", "nullable": true, "type": "string"}, "removal_reason": {"description": "Removal reason", "nullable": true, "type": "string"} }, "required": ["guild_id", "status", "description", "category_type", "custom_tags", "applied_at"] }, "DiscoveryAdminReviewRequest": { "type": "object", "properties": {"reason": {"type": "string", "maxLength": 500, "description": "Review reason"}} }, "DiscoveryAdminRejectRequest": { "type": "object", "properties": { "reason": {"type": "string", "minLength": 1, "maxLength": 500, "description": "Rejection reason"} }, "required": ["reason"] }, "DiscoveryAdminRemoveRequest": { "type": "object", "properties": {"reason": {"type": "string", "minLength": 1, "maxLength": 500, "description": "Removal reason"}}, "required": ["reason"] }, "DiscoveryAdminListedGuildResponse": { "type": "object", "properties": { "guild_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild ID"}, "guild_name": {"type": "string", "description": "Guild name"}, "guild_icon": {"description": "Guild icon hash", "nullable": true, "type": "string"}, "guild_owner_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "Guild owner user ID"}, "guild_owner_username": {"description": "Guild owner username", "nullable": true, "type": "string"}, "guild_owner_global_name": {"description": "Guild owner display name", "nullable": true, "type": "string"}, "guild_owner_discriminator": {"description": "Guild owner discriminator", "nullable": true, "type": "string"}, "guild_member_count": {"type": "number", "description": "Approximate member count"}, "guild_nsfw_level": { "description": "NSFW level of the guild", "nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}] }, "guild_features": {"type": "array", "items": {"type": "string"}, "description": "Guild feature flags"}, "description": {"type": "string", "description": "Discovery description"}, "category_type": {"type": "number", "description": "Discovery category type"}, "primary_language": {"description": "Primary community language", "nullable": true, "type": "string"}, "custom_tags": {"type": "array", "items": {"type": "string"}, "description": "Custom discovery tags"}, "applied_at": {"type": "string", "description": "Application timestamp"}, "approved_at": {"description": "Approval timestamp", "nullable": true, "type": "string"} }, "required": [ "guild_id", "guild_name", "guild_icon", "guild_owner_id", "guild_owner_username", "guild_owner_global_name", "guild_owner_discriminator", "guild_member_count", "guild_nsfw_level", "guild_features", "description", "category_type", "primary_language", "custom_tags", "applied_at", "approved_at" ] }, "GuildMemoryStatsResponse": { "type": "object", "properties": { "guilds": { "type": "array", "items": { "type": "object", "properties": { "node_id": {"type": "string"}, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "guild_name": {"type": "string"}, "guild_icon": {"nullable": true, "type": "string"}, "nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "memory": {"$ref": "#/components/schemas/Int64StringType"}, "member_count": {"$ref": "#/components/schemas/Int32Type"}, "session_count": {"$ref": "#/components/schemas/Int32Type"}, "presence_count": {"$ref": "#/components/schemas/Int32Type"} }, "required": [ "node_id", "guild_id", "guild_name", "guild_icon", "nsfw_level", "memory", "member_count", "session_count", "presence_count" ] }, "maxItems": 1000 } }, "required": ["guilds"] }, "Int64StringType": {"type": "string", "format": "int64", "pattern": "^-?[0-9]+$"}, "Int32Type": {"type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32"}, "GetProcessMemoryStatsRequest": { "type": "object", "properties": {"limit": {"type": "integer", "minimum": 100, "maximum": 1000, "format": "int32"}} }, "ReloadAllGuildsResponse": { "type": "object", "properties": {"count": {"$ref": "#/components/schemas/Int32Type"}}, "required": ["count"] }, "ReloadGuildsRequest": { "type": "object", "properties": { "guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "List of guild IDs to reload" } }, "required": ["guild_ids"] }, "NodeStatsResponse": { "type": "object", "properties": { "status": {"type": "string"}, "sessions": {"$ref": "#/components/schemas/Int32Type"}, "guilds": {"$ref": "#/components/schemas/Int32Type"}, "presences": {"$ref": "#/components/schemas/Int32Type"}, "calls": {"$ref": "#/components/schemas/Int32Type"}, "memory": { "type": "object", "properties": { "total": {"$ref": "#/components/schemas/Int64StringType"}, "processes": {"$ref": "#/components/schemas/Int64StringType"}, "system": {"$ref": "#/components/schemas/Int64StringType"} }, "required": ["total", "processes", "system"] }, "process_count": {"$ref": "#/components/schemas/Int32Type"}, "process_limit": {"$ref": "#/components/schemas/Int32Type"}, "uptime_seconds": {"$ref": "#/components/schemas/Int32Type"}, "node_count": {"$ref": "#/components/schemas/Int32Type"}, "nodes": { "type": "array", "items": { "type": "object", "properties": { "node_id": {"type": "string"}, "status": {"type": "string"}, "sessions": {"$ref": "#/components/schemas/Int32Type"}, "guilds": {"$ref": "#/components/schemas/Int32Type"}, "presences": {"$ref": "#/components/schemas/Int32Type"}, "calls": {"$ref": "#/components/schemas/Int32Type"}, "memory": { "type": "object", "properties": { "total": {"$ref": "#/components/schemas/Int64StringType"}, "processes": {"$ref": "#/components/schemas/Int64StringType"}, "system": {"$ref": "#/components/schemas/Int64StringType"} }, "required": ["total", "processes", "system"] }, "process_count": {"$ref": "#/components/schemas/Int32Type"}, "process_limit": {"$ref": "#/components/schemas/Int32Type"}, "uptime_seconds": {"$ref": "#/components/schemas/Int32Type"} }, "required": [ "node_id", "status", "sessions", "guilds", "presences", "calls", "memory", "process_count", "process_limit", "uptime_seconds" ] }, "maxItems": 1000 } }, "required": [ "status", "sessions", "guilds", "presences", "calls", "memory", "process_count", "process_limit", "uptime_seconds", "node_count", "nodes" ] }, "GatewayVoiceStateCountsResponse": { "type": "object", "properties": { "total_voice_states": {"$ref": "#/components/schemas/Int32Type"}, "regions": { "type": "array", "items": { "type": "object", "properties": { "region_id": {"type": "string"}, "voice_state_count": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["region_id", "voice_state_count"] }, "maxItems": 1000 }, "servers": { "type": "array", "items": { "type": "object", "properties": { "server_id": {"type": "string"}, "voice_state_count": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["server_id", "voice_state_count"] }, "maxItems": 5000 } }, "required": ["total_voice_states", "regions", "servers"] }, "ListGuildAuditLogsResponse": { "type": "object", "properties": { "audit_log_entries": { "type": "array", "items": {"$ref": "#/components/schemas/GuildAuditLogEntryResponse"}, "description": "Array of audit log entries" }, "users": { "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"}, "description": "Users referenced in the audit log entries" }, "webhooks": { "type": "array", "items": {"$ref": "#/components/schemas/AuditLogWebhookResponse"}, "description": "Webhooks referenced in the audit log entries" } }, "required": ["audit_log_entries", "users", "webhooks"] }, "GuildAuditLogEntryResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this audit log entry" }, "action_type": {"$ref": "#/components/schemas/AuditLogActionType"}, "user_id": { "description": "The user ID of the user who performed the action", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "target_id": { "description": "The ID of the affected entity (user, channel, role, invite code, etc.)", "nullable": true, "type": "string" }, "reason": {"type": "string", "description": "The reason provided for the action"}, "options": { "type": "object", "properties": { "channel_id": {"type": "string", "description": "Channel ID for relevant actions"}, "count": {"type": "number", "description": "Count of items affected"}, "delete_member_days": { "type": "string", "description": "Number of days of messages to delete on member ban" }, "id": {"type": "string", "description": "ID of the affected entity"}, "integration_type": {"type": "number", "description": "Type of integration"}, "message_id": {"type": "string", "description": "Message ID for relevant actions"}, "members_removed": {"type": "number", "description": "Number of members removed"}, "role_name": {"type": "string", "description": "Name of the role"}, "type": {"type": "number", "description": "Type identifier"}, "inviter_id": {"type": "string", "description": "ID of the user who created the invite"}, "max_age": {"type": "number", "description": "Maximum age of the invite in seconds"}, "max_uses": {"type": "number", "description": "Maximum number of uses for the invite"}, "temporary": {"type": "boolean", "description": "Whether the invite grants temporary membership"}, "uses": {"type": "number", "description": "Number of times the invite has been used"} }, "description": "Additional options depending on action type" }, "changes": { "type": "array", "items": {"$ref": "#/components/schemas/AuditLogChangeSchema"}, "description": "Changes made to the target" } }, "required": ["id", "action_type"] }, "AuditLogActionType": { "type": "integer", "format": "int32", "enum": [ 1, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 40, 41, 42, 50, 51, 52, 60, 61, 62, 90, 91, 92, 72, 73, 74, 75 ], "description": "The type of action that occurred" }, "AuditLogChangeSchema": { "type": "object", "properties": { "key": {"type": "string", "description": "The field that changed"}, "old_value": { "description": "Value before the change", "nullable": true, "oneOf": [ {"type": "string"}, {"type": "number"}, {"type": "boolean"}, {"type": "array", "items": {"type": "string"}}, {"type": "array", "items": {"type": "number"}}, { "type": "object", "properties": { "added": {"type": "array", "items": {"type": "string"}}, "removed": {"type": "array", "items": {"type": "string"}} }, "required": ["added", "removed"] } ] }, "new_value": { "description": "Value after the change", "nullable": true, "oneOf": [ {"type": "string"}, {"type": "number"}, {"type": "boolean"}, {"type": "array", "items": {"type": "string"}}, {"type": "array", "items": {"type": "number"}}, { "type": "object", "properties": { "added": {"type": "array", "items": {"type": "string"}}, "removed": {"type": "array", "items": {"type": "string"}} }, "required": ["added", "removed"] } ] } }, "required": ["key"] }, "UserPartialResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier (snowflake) for this user" }, "username": {"type": "string", "description": "The username of the user, not unique across the platform"}, "discriminator": {"type": "string", "description": "The four-digit discriminator tag of the user"}, "global_name": {"description": "The display name of the user, if set", "nullable": true, "type": "string"}, "avatar": {"description": "The hash of the user avatar image", "nullable": true, "type": "string"}, "avatar_color": { "description": "The dominant avatar color of the user as an integer", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "bot": {"type": "boolean", "description": "Whether the user is a bot account"}, "system": {"type": "boolean", "description": "Whether the user is an official system user"}, "flags": {"$ref": "#/components/schemas/PublicUserFlags"}, "mention_flags": { "$ref": "#/components/schemas/MentionReplyPreferences", "description": "The user's account-wide reply mention preference" } }, "required": ["id", "username", "discriminator", "global_name", "avatar", "avatar_color", "flags"] }, "PublicUserFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "The public flags on the user account" }, "MentionReplyPreferences": { "type": "integer", "format": "int32", "enum": [0, 1, 2], "description": "Reply mention preference" }, "AuditLogWebhookResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this webhook" }, "type": {"$ref": "#/components/schemas/WebhookType"}, "guild_id": { "description": "The guild ID this webhook belongs to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "channel_id": { "description": "The channel ID this webhook posts to", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "name": {"type": "string", "description": "The name of the webhook"}, "avatar_hash": {"description": "The hash of the webhook avatar", "nullable": true, "type": "string"} }, "required": ["id", "type", "name"] }, "WebhookType": {"type": "integer", "format": "int32", "enum": [1, 2], "description": "The type of webhook"}, "ListGuildAuditLogsRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"$ref": "#/components/schemas/Int32Type"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "action_type": {"$ref": "#/components/schemas/AuditLogActionType"} }, "required": ["guild_id"] }, "BanGuildMemberRequest": { "type": "object", "properties": { "delete_message_days": { "type": "integer", "minimum": 0, "maximum": 7, "format": "int32", "description": "Number of days of messages to delete from the banned user (0-7)" }, "reason": {"description": "The reason for the ban (max 512 characters)", "nullable": true, "type": "string"}, "ban_duration_seconds": { "type": "integer", "format": "int53", "description": "Duration of the ban in seconds (0 for permanent, or between 60 and 63072000 seconds for a temporary ban)" }, "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["guild_id", "user_id"] }, "ClearGuildFieldsRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "fields": { "type": "array", "items": { "type": "string", "enum": ["icon", "banner", "splash", "embed_splash"], "description": "Guild image field that can be cleared" }, "maxItems": 10, "description": "List of guild image fields to clear" } }, "required": ["guild_id", "fields"] }, "SuccessResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true], "description": "Whether the operation succeeded"} }, "required": ["success"] }, "DeleteGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "ForceAddUserToGuildRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "guild_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["user_id", "guild_id"] }, "KickGuildMemberRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["guild_id", "user_id"] }, "ListGuildMembersResponse": { "type": "object", "properties": { "members": {"type": "array", "items": {"$ref": "#/components/schemas/GuildMemberResponse"}}, "total": {"$ref": "#/components/schemas/Int32Type"}, "limit": {"$ref": "#/components/schemas/Int32Type"}, "offset": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["members", "total", "limit", "offset"] }, "GuildMemberResponse": { "type": "object", "properties": { "user": {"$ref": "#/components/schemas/UserPartialResponse"}, "nick": {"description": "The nickname of the member in this guild", "nullable": true, "type": "string"}, "avatar": {"description": "The hash of the member guild-specific avatar", "nullable": true, "type": "string"}, "banner": {"description": "The hash of the member guild-specific banner", "nullable": true, "type": "string"}, "accent_color": { "description": "The accent colour of the member guild profile as an integer", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "roles": { "type": "array", "items": {"type": "string"}, "maxItems": 250, "description": "Array of role IDs the member has" }, "joined_at": { "type": "string", "format": "date-time", "description": "ISO8601 timestamp of when the user joined the guild" }, "mute": {"type": "boolean", "description": "Whether the member is muted in voice channels"}, "deaf": {"type": "boolean", "description": "Whether the member is deafened in voice channels"}, "communication_disabled_until": { "description": "ISO8601 timestamp until which the member is timed out", "nullable": true, "type": "string", "format": "date-time" }, "profile_flags": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/GuildMemberProfileFlags"}]}, "mention_flags": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/MentionReplyPreferences", "description": "Per-guild reply mention preference override; NO_PREFERENCE means inherit the user-level mention_flags." } ] } }, "required": ["user", "roles", "joined_at", "mute", "deaf"] }, "GuildMemberProfileFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Member profile flags" }, "ListGuildMembersRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "offset": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": ["guild_id"] }, "LookupGuildResponse": { "type": "object", "properties": { "guild": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "owner_id": {"$ref": "#/components/schemas/SnowflakeType"}, "owner_username": {"nullable": true, "type": "string"}, "owner_global_name": {"nullable": true, "type": "string"}, "owner_discriminator": {"nullable": true, "type": "string"}, "name": {"type": "string"}, "vanity_url_code": {"nullable": true, "type": "string"}, "icon": {"nullable": true, "type": "string"}, "banner": {"nullable": true, "type": "string"}, "splash": {"nullable": true, "type": "string"}, "embed_splash": {"nullable": true, "type": "string"}, "features": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "verification_level": {"$ref": "#/components/schemas/GuildVerificationLevel"}, "mfa_level": {"$ref": "#/components/schemas/GuildMFALevel"}, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel"}, "nsfw": {"type": "boolean"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": {"nullable": true, "type": "string"}, "explicit_content_filter": {"$ref": "#/components/schemas/GuildExplicitContentFilter"}, "default_message_notifications": {"$ref": "#/components/schemas/DefaultMessageNotifications"}, "afk_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "afk_timeout": {"$ref": "#/components/schemas/Int32Type"}, "system_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "system_channel_flags": {"$ref": "#/components/schemas/SystemChannelFlags"}, "rules_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "disabled_operations": {"$ref": "#/components/schemas/Int32Type"}, "member_count": {"$ref": "#/components/schemas/Int32Type"}, "channels": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"nullable": true, "type": "string"}, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 998, 999], "description": "The type of the channel" }, "position": {"$ref": "#/components/schemas/Int32Type"}, "parent_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "nsfw": {"nullable": true, "type": "boolean"}, "nsfw_override": {"nullable": true, "type": "boolean"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": {"nullable": true, "type": "string"}, "url": {"nullable": true, "type": "string"} }, "required": ["id", "name", "type", "position", "parent_id", "nsfw", "url"] }, "maxItems": 500 }, "roles": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "color": {"$ref": "#/components/schemas/Int32Type"}, "position": {"$ref": "#/components/schemas/Int32Type"}, "permissions": { "type": "string", "format": "int64", "pattern": "^[0-9]+$", "description": "The role permissions bitfield" }, "hoist": {"type": "boolean"}, "mentionable": {"type": "boolean"} }, "required": ["id", "name", "color", "position", "permissions", "hoist", "mentionable"] }, "maxItems": 250 } }, "required": [ "id", "owner_id", "owner_username", "owner_global_name", "owner_discriminator", "name", "vanity_url_code", "icon", "banner", "splash", "embed_splash", "features", "verification_level", "mfa_level", "nsfw_level", "explicit_content_filter", "default_message_notifications", "afk_channel_id", "afk_timeout", "system_channel_id", "system_channel_flags", "rules_channel_id", "disabled_operations", "member_count", "channels", "roles" ] } }, "required": ["guild"] }, "GuildVerificationLevel": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4], "description": "Required verification level for members" }, "GuildMFALevel": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "Required MFA level for moderation actions" }, "ContentWarningLevel": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "The content warning level for a guild, category, or channel" }, "GuildExplicitContentFilter": { "type": "integer", "format": "int32", "enum": [0, 1, 2], "description": "Level of content filtering for explicit media" }, "DefaultMessageNotifications": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "Default notification level for new members" }, "SystemChannelFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "System channel message flags" }, "LookupGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "ReloadGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "SearchGuildsResponse": { "type": "object", "properties": { "guilds": {"type": "array", "items": {"$ref": "#/components/schemas/GuildAdminResponse"}}, "total": {"type": "number"} }, "required": ["guilds", "total"] }, "GuildAdminResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this guild" }, "name": {"type": "string", "description": "The name of the guild"}, "features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Array of guild feature flags" }, "owner_id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the guild owner"}, "owner_username": {"description": "The username of the guild owner", "nullable": true, "type": "string"}, "owner_global_name": { "description": "The display name of the guild owner, if set", "nullable": true, "type": "string" }, "owner_discriminator": { "description": "The discriminator of the guild owner", "nullable": true, "type": "string" }, "icon": {"description": "The hash of the guild icon", "nullable": true, "type": "string"}, "banner": {"description": "The hash of the guild banner", "nullable": true, "type": "string"}, "member_count": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The number of members in the guild" }, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel"}, "nsfw": {"type": "boolean", "description": "Whether the guild is flagged as adult content"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": { "description": "Custom content warning text shown before entry", "nullable": true, "type": "string" } }, "required": [ "id", "name", "features", "owner_id", "owner_username", "owner_global_name", "owner_discriminator", "icon", "banner", "member_count" ] }, "SearchGuildsRequest": { "type": "object", "properties": { "query": {"type": "string"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "offset": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} } }, "ShutdownGuildRequest": { "type": "object", "properties": {"guild_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["guild_id"] }, "GuildUpdateResponse": { "type": "object", "properties": { "guild": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "features": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "owner_id": {"$ref": "#/components/schemas/SnowflakeType"}, "icon": {"nullable": true, "type": "string"}, "banner": {"nullable": true, "type": "string"}, "member_count": {"$ref": "#/components/schemas/Int32Type"}, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel"}, "nsfw": {"type": "boolean"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": {"nullable": true, "type": "string"} }, "required": ["id", "name", "features", "owner_id", "icon", "banner", "member_count"] } }, "required": ["guild"] }, "TransferGuildOwnershipRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "new_owner_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["guild_id", "new_owner_id"] }, "UpdateGuildFeaturesRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "add_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to add" }, "remove_features": { "type": "array", "items": {"$ref": "#/components/schemas/GuildFeatureSchema"}, "maxItems": 100, "description": "Guild features to remove" } }, "required": ["guild_id"] }, "UpdateGuildNameRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string", "description": "New name for the guild"} }, "required": ["guild_id", "name"] }, "UpdateGuildSettingsRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "verification_level": { "$ref": "#/components/schemas/GuildVerificationLevel", "description": "Required verification level for guild members" }, "mfa_level": { "$ref": "#/components/schemas/GuildMFALevel", "description": "Required MFA level for moderators" }, "nsfw_level": {"$ref": "#/components/schemas/NSFWLevel", "description": "NSFW content level for the guild"}, "nsfw": {"type": "boolean", "description": "Whether the guild is flagged as adult content"}, "content_warning_level": {"$ref": "#/components/schemas/ContentWarningLevel"}, "content_warning_text": { "description": "Custom content warning text shown before entry", "nullable": true, "type": "string" }, "explicit_content_filter": { "$ref": "#/components/schemas/GuildExplicitContentFilter", "description": "Explicit content filter level" }, "default_message_notifications": { "$ref": "#/components/schemas/DefaultMessageNotifications", "description": "Default notification setting for new members" }, "disabled_operations": {"$ref": "#/components/schemas/GuildOperations"} }, "required": ["guild_id"] }, "GuildOperations": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Bitmask of disabled guild operations" }, "UpdateGuildVanityRequest": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "vanity_url_code": { "description": "New vanity URL code, or null to remove", "nullable": true, "type": "string" } }, "required": ["guild_id", "vanity_url_code"] }, "ListGuildEmojisResponse": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "emojis": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "animated": {"type": "boolean"}, "creator_id": {"$ref": "#/components/schemas/SnowflakeType"}, "media_url": {"type": "string"} }, "required": ["id", "name", "animated", "creator_id", "media_url"] }, "maxItems": 500 } }, "required": ["guild_id", "emojis"] }, "ListGuildStickersResponse": { "type": "object", "properties": { "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "stickers": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "name": {"type": "string"}, "animated": {"type": "boolean"}, "creator_id": {"$ref": "#/components/schemas/SnowflakeType"}, "media_url": {"type": "string"} }, "required": ["id", "name", "animated", "creator_id", "media_url"] }, "maxItems": 500 } }, "required": ["guild_id", "stickers"] }, "InstanceConfigResponse": { "type": "object", "properties": { "sso": { "type": "object", "properties": { "enabled": {"type": "boolean"}, "enforced": {"type": "boolean"}, "display_name": {"nullable": true, "type": "string"}, "issuer": {"nullable": true, "type": "string"}, "authorization_url": {"nullable": true, "type": "string"}, "token_url": {"nullable": true, "type": "string"}, "userinfo_url": {"nullable": true, "type": "string"}, "jwks_url": {"nullable": true, "type": "string"}, "client_id": {"nullable": true, "type": "string"}, "client_secret_set": {"type": "boolean"}, "scope": {"nullable": true, "type": "string"}, "allowed_domains": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "auto_provision": {"type": "boolean"}, "redirect_uri": {"nullable": true, "type": "string"} }, "required": [ "enabled", "enforced", "display_name", "issuer", "authorization_url", "token_url", "userinfo_url", "jwks_url", "client_id", "client_secret_set", "scope", "allowed_domains", "auto_provision", "redirect_uri" ] }, "gateway_rollout": {"$ref": "#/components/schemas/GatewayRolloutConfigSchema"}, "registration": { "type": "object", "properties": { "mode": {"type": "string", "enum": ["open", "approval", "closed"], "description": "Registration mode"}, "admin_registration_urls_enabled": {"type": "boolean"}, "urls": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "label": {"nullable": true, "type": "string"}, "created_by_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "created_at": {"type": "string", "format": "date-time"}, "expires_at": {"nullable": true, "type": "string", "format": "date-time"}, "max_uses": { "nullable": true, "type": "integer", "minimum": 1, "maximum": 9007199254740991, "format": "int64" }, "use_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"}, "revoked_at": {"nullable": true, "type": "string", "format": "date-time"}, "approval_required": {"type": "boolean"}, "last_used_at": {"nullable": true, "type": "string", "format": "date-time"}, "last_used_by_user_id": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] } }, "required": [ "id", "label", "created_by_user_id", "created_at", "expires_at", "max_uses", "use_count", "revoked_at", "approval_required", "last_used_at", "last_used_by_user_id" ] } }, "pending_registrations": { "type": "array", "items": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "integer", "minimum": 0, "maximum": 9999, "format": "int32"}, "global_name": {"nullable": true, "type": "string"}, "email": {"nullable": true, "type": "string"}, "requested_at": {"type": "string", "format": "date-time"}, "registration_url_id": {"nullable": true, "type": "string"}, "client_ip": {"nullable": true, "type": "string"} }, "required": [ "user_id", "username", "discriminator", "global_name", "email", "requested_at", "registration_url_id", "client_ip" ] } } }, "required": ["mode", "admin_registration_urls_enabled", "urls", "pending_registrations"] }, "self_hosted": {"type": "boolean"}, "app_public": { "type": "object", "properties": { "branding": { "type": "object", "properties": { "product_name": {"type": "string"}, "icon_url": {"nullable": true, "type": "string"}, "symbol_url": {"nullable": true, "type": "string"}, "logo_url": {"nullable": true, "type": "string"}, "wordmark_url": {"nullable": true, "type": "string"}, "favicon_url": {"nullable": true, "type": "string"}, "theme_color": {"nullable": true, "type": "string"} }, "required": [ "product_name", "icon_url", "symbol_url", "logo_url", "wordmark_url", "favicon_url", "theme_color" ] }, "setup": { "type": "object", "properties": {"configured": {"type": "boolean"}}, "required": ["configured"] }, "legal": { "type": "object", "properties": { "terms_url": {"nullable": true, "type": "string"}, "privacy_url": {"nullable": true, "type": "string"} }, "required": ["terms_url", "privacy_url"] }, "registration": { "type": "object", "properties": {"collect_date_of_birth": {"type": "boolean"}}, "required": ["collect_date_of_birth"] } }, "required": ["branding", "setup", "legal", "registration"] }, "policy": { "type": "object", "properties": { "single_community_enabled": {"type": "boolean"}, "single_community_locked": {"type": "boolean"}, "single_community_guild_id": {"nullable": true, "type": "string"}, "direct_messages_disabled": {"type": "boolean"}, "direct_messages_locked": {"type": "boolean"}, "premium_mode": {"enum": ["mirror", "everyone"], "type": "string"}, "services": { "type": "object", "properties": { "gif_enabled": {"nullable": true, "type": "boolean"}, "youtube_enabled": {"nullable": true, "type": "boolean"}, "bluesky_enabled": {"nullable": true, "type": "boolean"} }, "required": ["gif_enabled", "youtube_enabled", "bluesky_enabled"] }, "services_resolved": { "type": "object", "properties": { "gif_enabled": {"type": "boolean"}, "youtube_enabled": {"type": "boolean"}, "bluesky_enabled": {"type": "boolean"} }, "required": ["gif_enabled", "youtube_enabled", "bluesky_enabled"] }, "services_available": { "type": "object", "properties": { "gif": {"type": "boolean"}, "youtube": {"type": "boolean"}, "bluesky": {"type": "boolean"} }, "required": ["gif", "youtube", "bluesky"] } }, "required": [ "single_community_enabled", "single_community_locked", "single_community_guild_id", "direct_messages_disabled", "direct_messages_locked", "premium_mode", "services", "services_resolved", "services_available" ] }, "integrations": { "type": "object", "properties": { "gif": { "type": "object", "properties": { "provider": {"nullable": true, "enum": ["tenor", "klipy"], "type": "string"}, "effective_provider": {"enum": ["tenor", "klipy"], "type": "string"}, "tenor_api_key_set": {"type": "boolean"}, "klipy_api_key_set": {"type": "boolean"}, "effective_available": {"type": "boolean"} }, "required": [ "provider", "effective_provider", "tenor_api_key_set", "klipy_api_key_set", "effective_available" ] }, "youtube": { "type": "object", "properties": {"api_key_set": {"type": "boolean"}, "effective_available": {"type": "boolean"}}, "required": ["api_key_set", "effective_available"] }, "captcha": { "type": "object", "properties": { "provider": {"nullable": true, "enum": ["hcaptcha", "turnstile", "none"], "type": "string"}, "effective_provider": {"enum": ["hcaptcha", "turnstile", "none"], "type": "string"}, "hcaptcha_site_key": {"nullable": true, "type": "string"}, "hcaptcha_secret_key_set": {"type": "boolean"}, "turnstile_site_key": {"nullable": true, "type": "string"}, "turnstile_secret_key_set": {"type": "boolean"}, "effective_enabled": {"type": "boolean"} }, "required": [ "provider", "effective_provider", "hcaptcha_site_key", "hcaptcha_secret_key_set", "turnstile_site_key", "turnstile_secret_key_set", "effective_enabled" ] }, "email": { "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "effective_enabled": {"type": "boolean"}, "provider": {"nullable": true, "enum": ["smtp", "none"], "type": "string"}, "effective_provider": {"enum": ["smtp", "none"], "type": "string"}, "from_email": {"nullable": true, "type": "string"}, "from_name": {"nullable": true, "type": "string"}, "smtp": { "type": "object", "properties": { "host": {"nullable": true, "type": "string"}, "port": {"nullable": true, "type": "integer", "minimum": 1, "maximum": 65535, "format": "int32"}, "username": {"nullable": true, "type": "string"}, "password_set": {"type": "boolean"}, "secure": {"nullable": true, "type": "boolean"} }, "required": ["host", "port", "username", "password_set", "secure"] } }, "required": [ "enabled", "effective_enabled", "provider", "effective_provider", "from_email", "from_name", "smtp" ] }, "bluesky": { "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "effective_enabled": {"type": "boolean"}, "client_name": {"nullable": true, "type": "string"}, "client_uri": {"nullable": true, "type": "string"}, "logo_uri": {"nullable": true, "type": "string"}, "tos_uri": {"nullable": true, "type": "string"}, "policy_uri": {"nullable": true, "type": "string"}, "key_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": [ "enabled", "effective_enabled", "client_name", "client_uri", "logo_uri", "tos_uri", "policy_uri", "key_count" ] } }, "required": ["gif", "youtube", "captcha", "email", "bluesky"] }, "media": { "type": "object", "properties": { "attachment_decay": { "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "min_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_eligible_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "min_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "max_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "curve": {"nullable": true, "type": "number", "minimum": 0, "maximum": 1}, "renew_threshold_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "renew_window_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "effective": { "type": "object", "properties": { "enabled": {"type": "boolean"}, "min_size_mb": {"type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_size_mb": {"type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_eligible_size_mb": {"type": "number", "minimum": 0, "exclusiveMinimum": true}, "min_lifetime_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "max_lifetime_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "curve": {"type": "number", "minimum": 0, "maximum": 1}, "renew_threshold_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "renew_window_days": { "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true } }, "required": [ "enabled", "min_size_mb", "max_size_mb", "max_eligible_size_mb", "min_lifetime_days", "max_lifetime_days", "curve", "renew_threshold_days", "renew_window_days" ] } }, "required": [ "enabled", "min_size_mb", "max_size_mb", "max_eligible_size_mb", "min_lifetime_days", "max_lifetime_days", "curve", "renew_threshold_days", "renew_window_days", "effective" ] } }, "required": ["attachment_decay"] } }, "required": [ "sso", "gateway_rollout", "registration", "self_hosted", "app_public", "policy", "integrations", "media" ] }, "GatewayRolloutConfigSchema": { "type": "object", "properties": { "session_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "session_rollout_mode": {"enum": ["modulo", "random"], "type": "string"}, "guild_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "rpc_request_timeout_ms": {"type": "integer", "minimum": 1000, "maximum": 60000, "format": "int32"}, "max_concurrent_session_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "max_concurrent_guild_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_shards": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_max_queue": {"type": "integer", "minimum": 0, "maximum": 1000000, "format": "int32"}, "voice_e2ee_scope": {"enum": ["guild_feature_only", "platform_wide"], "type": "string"}, "voice_reconciliation_v3_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "voice_reconciliation_v3_interval_ms": { "type": "integer", "minimum": 500, "maximum": 60000, "format": "int32" } } }, "BrandingAssetUploadRequest": { "type": "object", "properties": { "kind": {"enum": ["icon", "symbol", "logo", "wordmark", "favicon"], "type": "string"}, "image": {"nullable": true, "type": "string", "maxLength": 16000000} }, "required": ["kind"] }, "InstanceEmailSmtpTestResponse": { "type": "object", "properties": {"ok": {"type": "boolean"}, "error": {"nullable": true, "type": "string"}}, "required": ["ok", "error"] }, "InstanceEmailSmtpTestRequest": { "type": "object", "properties": { "host": {"type": "string", "minLength": 1, "maxLength": 255}, "port": {"type": "integer", "minimum": 1, "maximum": 65535, "format": "int32"}, "username": {"type": "string", "minLength": 1, "maxLength": 320}, "password": {"type": "string", "minLength": 1, "maxLength": 4096}, "secure": {"type": "boolean"} }, "required": ["host", "port", "username", "password"] }, "PendingRegistrationActionRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "CreateRegistrationUrlResponse": { "type": "object", "properties": { "registration_url": { "type": "object", "properties": { "id": {"type": "string"}, "label": {"nullable": true, "type": "string"}, "created_by_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "created_at": {"type": "string", "format": "date-time"}, "expires_at": {"nullable": true, "type": "string", "format": "date-time"}, "max_uses": { "nullable": true, "type": "integer", "minimum": 1, "maximum": 9007199254740991, "format": "int64" }, "use_count": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"}, "revoked_at": {"nullable": true, "type": "string", "format": "date-time"}, "approval_required": {"type": "boolean"}, "last_used_at": {"nullable": true, "type": "string", "format": "date-time"}, "last_used_by_user_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": [ "id", "label", "created_by_user_id", "created_at", "expires_at", "max_uses", "use_count", "revoked_at", "approval_required", "last_used_at", "last_used_by_user_id" ] }, "code": {"type": "string"}, "url": {"type": "string"} }, "required": ["registration_url", "code", "url"] }, "CreateRegistrationUrlRequest": { "type": "object", "properties": { "label": {"nullable": true, "type": "string", "minLength": 1, "maxLength": 120}, "expires_at": {"nullable": true, "type": "string", "format": "date-time"}, "max_uses": {"nullable": true, "type": "integer", "minimum": 1, "maximum": 1000000, "format": "int32"}, "approval_required": {"type": "boolean"} } }, "RegistrationUrlActionRequest": {"type": "object", "properties": {"id": {"type": "string"}}, "required": ["id"]}, "InstanceConfigUpdateRequest": { "type": "object", "properties": { "gateway_rollout": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/GatewayRolloutConfigUpdateRequest"}] }, "registration": { "nullable": true, "type": "object", "properties": { "mode": {"type": "string", "enum": ["open", "approval", "closed"], "description": "Registration mode"}, "admin_registration_urls_enabled": {"type": "boolean"} } }, "sso": { "nullable": true, "type": "object", "properties": { "enabled": {"type": "boolean"}, "enforced": {"type": "boolean"}, "display_name": {"nullable": true, "type": "string"}, "issuer": {"nullable": true, "type": "string"}, "authorization_url": {"nullable": true, "type": "string"}, "token_url": {"nullable": true, "type": "string"}, "userinfo_url": {"nullable": true, "type": "string"}, "jwks_url": {"nullable": true, "type": "string"}, "client_id": {"nullable": true, "type": "string"}, "client_secret": {"nullable": true, "type": "string"}, "scope": {"nullable": true, "type": "string"}, "allowed_domains": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "auto_provision": {"type": "boolean"} } }, "app_public": { "nullable": true, "type": "object", "properties": { "branding": { "nullable": true, "type": "object", "properties": { "product_name": {"type": "string", "minLength": 1, "maxLength": 80}, "icon_url": {"nullable": true, "type": "string", "maxLength": 2048}, "symbol_url": {"nullable": true, "type": "string", "maxLength": 2048}, "logo_url": {"nullable": true, "type": "string", "maxLength": 2048}, "wordmark_url": {"nullable": true, "type": "string", "maxLength": 2048}, "favicon_url": {"nullable": true, "type": "string", "maxLength": 2048}, "theme_color": {"nullable": true, "type": "string", "maxLength": 64} } }, "setup": {"nullable": true, "type": "object", "properties": {"configured": {"type": "boolean"}}}, "legal": { "nullable": true, "type": "object", "properties": { "terms_url": {"nullable": true, "type": "string", "maxLength": 2048}, "privacy_url": {"nullable": true, "type": "string", "maxLength": 2048} } }, "registration": { "nullable": true, "type": "object", "properties": {"collect_date_of_birth": {"type": "boolean"}} } } }, "integrations": { "nullable": true, "type": "object", "properties": { "gif": { "nullable": true, "type": "object", "properties": { "provider": {"nullable": true, "enum": ["tenor", "klipy"], "type": "string"}, "tenor_api_key": {"nullable": true, "type": "string", "maxLength": 4096}, "klipy_api_key": {"nullable": true, "type": "string", "maxLength": 4096} } }, "youtube": { "nullable": true, "type": "object", "properties": {"api_key": {"nullable": true, "type": "string", "maxLength": 4096}} }, "captcha": { "nullable": true, "type": "object", "properties": { "provider": {"nullable": true, "enum": ["hcaptcha", "turnstile", "none"], "type": "string"}, "hcaptcha_site_key": {"nullable": true, "type": "string", "maxLength": 4096}, "hcaptcha_secret_key": {"nullable": true, "type": "string", "maxLength": 4096}, "turnstile_site_key": {"nullable": true, "type": "string", "maxLength": 4096}, "turnstile_secret_key": {"nullable": true, "type": "string", "maxLength": 4096} } }, "email": { "nullable": true, "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "provider": {"nullable": true, "enum": ["smtp", "none"], "type": "string"}, "from_email": {"nullable": true, "type": "string", "maxLength": 320}, "from_name": {"nullable": true, "type": "string", "maxLength": 120}, "smtp": { "nullable": true, "type": "object", "properties": { "host": {"nullable": true, "type": "string", "maxLength": 255}, "port": {"nullable": true, "type": "integer", "minimum": 1, "maximum": 65535, "format": "int32"}, "username": {"nullable": true, "type": "string", "maxLength": 320}, "password": {"nullable": true, "type": "string", "maxLength": 4096}, "secure": {"nullable": true, "type": "boolean"} } } } }, "bluesky": { "nullable": true, "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "client_name": {"nullable": true, "type": "string", "maxLength": 120}, "client_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "logo_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "tos_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "policy_uri": {"nullable": true, "type": "string", "maxLength": 2048}, "keys": { "type": "array", "items": { "type": "object", "properties": { "kid": {"type": "string", "minLength": 1, "maxLength": 255}, "private_key": {"nullable": true, "type": "string", "maxLength": 10000} }, "required": ["kid"] }, "maxItems": 8 } } } } }, "media": { "nullable": true, "type": "object", "properties": { "attachment_decay": { "nullable": true, "type": "object", "properties": { "enabled": {"nullable": true, "type": "boolean"}, "min_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "max_eligible_size_mb": {"nullable": true, "type": "number", "minimum": 0, "exclusiveMinimum": true}, "min_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "max_lifetime_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "curve": {"nullable": true, "type": "number", "minimum": 0, "maximum": 1}, "renew_threshold_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true }, "renew_window_days": { "nullable": true, "type": "integer", "maximum": 9007199254740991, "format": "int64", "minimum": 0, "exclusiveMinimum": true } } } } }, "policy": { "nullable": true, "type": "object", "properties": { "single_community_enabled": {"type": "boolean"}, "single_community_name": {"type": "string", "minLength": 1, "maxLength": 100}, "direct_messages_disabled": {"type": "boolean"}, "premium_mode": {"enum": ["mirror", "everyone"], "type": "string"}, "services": { "nullable": true, "type": "object", "properties": { "gif_enabled": {"nullable": true, "type": "boolean"}, "youtube_enabled": {"nullable": true, "type": "boolean"}, "bluesky_enabled": {"nullable": true, "type": "boolean"} } } } } } }, "GatewayRolloutConfigUpdateRequest": { "type": "object", "properties": { "session_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "session_rollout_mode": {"enum": ["modulo", "random"], "type": "string"}, "guild_rollout_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "rpc_request_timeout_ms": {"type": "integer", "minimum": 1000, "maximum": 60000, "format": "int32"}, "max_concurrent_session_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "max_concurrent_guild_starts": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_shards": {"type": "integer", "minimum": 1, "maximum": 10000, "format": "int32"}, "gateway_dispatch_relay_max_queue": {"type": "integer", "minimum": 0, "maximum": 1000000, "format": "int32"}, "voice_e2ee_scope": {"enum": ["guild_feature_only", "platform_wide"], "type": "string"}, "voice_reconciliation_v3_percentage": {"type": "number", "minimum": 0, "maximum": 100}, "voice_reconciliation_v3_interval_ms": { "type": "integer", "minimum": 500, "maximum": 60000, "format": "int32" } } }, "ActiveJobsResponseSchema": { "type": "object", "properties": {"jobs": {"type": "array", "items": {"$ref": "#/components/schemas/JobLedgerEntrySchema"}}}, "required": ["jobs"] }, "JobLedgerEntrySchema": { "type": "object", "properties": { "job_id": {"$ref": "#/components/schemas/SnowflakeType"}, "task_type": {"type": "string"}, "status": {"enum": ["queued", "running", "succeeded", "failed", "cancelled", "deadletter"], "type": "string"}, "progress_current": {"nullable": true, "type": "number"}, "progress_total": {"nullable": true, "type": "number"}, "progress_message": {"nullable": true, "type": "string"}, "error_message": {"nullable": true, "type": "string"}, "created_at": {"type": "string", "description": "ISO 8601"}, "started_at": {"nullable": true, "type": "string"}, "completed_at": {"nullable": true, "type": "string"}, "requested_by_user_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "audit_log_reason": {"nullable": true, "type": "string"}, "jet_stream_lane": {"nullable": true, "type": "string"}, "jet_stream_seq": {"nullable": true, "type": "string"}, "attempts": {"type": "integer", "format": "int53"}, "max_attempts": {"type": "integer", "format": "int53"}, "run_at": {"nullable": true, "type": "string"}, "cancel_requested": {"type": "boolean"}, "context_link": {"nullable": true, "type": "string"}, "payload": {"description": "JSON-encoded original payload", "nullable": true, "type": "string"}, "result": {"description": "JSON-encoded result, if any", "nullable": true, "type": "string"} }, "required": [ "job_id", "task_type", "status", "progress_current", "progress_total", "progress_message", "error_message", "created_at", "started_at", "completed_at", "requested_by_user_id", "audit_log_reason", "jet_stream_lane", "jet_stream_seq", "attempts", "max_attempts", "run_at", "cancel_requested", "context_link", "payload", "result" ] }, "CancelJobResponseSchema": { "type": "object", "properties": { "cancelled": { "type": "boolean", "description": "True if a cancel request was recorded; false if the job was already terminal." } }, "required": ["cancelled"] }, "CancelJobRequest": { "type": "object", "properties": {"job_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["job_id"] }, "GetJobResponseSchema": { "type": "object", "properties": {"job": {"$ref": "#/components/schemas/JobLedgerEntrySchema"}}, "required": ["job"] }, "GetJobRequest": { "type": "object", "properties": {"job_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["job_id"] }, "ListJobsResponseSchema": { "type": "object", "properties": { "jobs": {"type": "array", "items": {"$ref": "#/components/schemas/JobLedgerEntrySchema"}}, "next_cursor": { "nullable": true, "type": "object", "properties": { "bucket_day": {"type": "string"}, "created_at": {"type": "string"}, "job_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["bucket_day", "created_at", "job_id"] } }, "required": ["jobs", "next_cursor"] }, "ListJobsRequest": { "type": "object", "properties": { "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Page size"}, "cursor": { "type": "object", "properties": { "bucket_day": {"type": "string"}, "created_at": {"type": "string"}, "job_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["bucket_day", "created_at", "job_id"], "description": "Cursor returned by a previous page" }, "max_lookback_days": { "type": "integer", "minimum": 1, "maximum": 60, "format": "int32", "description": "How many days back to scan" }, "status": { "enum": ["queued", "running", "succeeded", "failed", "cancelled", "deadletter"], "type": "string", "description": "Filter by job status" }, "task_type": {"type": "string", "description": "Filter by task type"}, "requested_by_user_id": {"$ref": "#/components/schemas/SnowflakeType"} } }, "LimitConfigGetResponse": { "type": "object", "properties": { "limit_config": { "type": "object", "properties": { "traitDefinitions": {"type": "array", "items": {"type": "string"}}, "rules": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string", "minLength": 1, "description": "Unique rule identifier"}, "filters": { "type": "object", "properties": { "traits": { "type": "array", "items": {"type": "string"}, "description": "Trait filters that must match for the rule to apply" }, "guildFeatures": { "type": "array", "items": {"type": "string"}, "description": "Guild feature flags required for the rule to apply" } }, "description": "Optional filters that scope the rule" }, "limits": { "type": "object", "additionalProperties": {"type": "number", "minimum": 0}, "description": "Per-limit key values" }, "modifiedFields": {"type": "array", "items": {"type": "string"}} }, "required": ["id", "limits"] } } }, "required": ["traitDefinitions", "rules"] }, "limit_config_json": {"type": "string"}, "self_hosted": {"type": "boolean"}, "defaults": { "type": "object", "additionalProperties": {"type": "object", "additionalProperties": {"type": "number"}} }, "metadata": { "type": "object", "additionalProperties": { "type": "object", "properties": { "key": {"type": "string"}, "label": {"type": "string"}, "description": {"type": "string"}, "category": {"type": "string"}, "scope": {"type": "string"}, "isToggle": {"type": "boolean"}, "unit": {"enum": ["bytes", "count"], "type": "string"}, "min": {"type": "number"}, "max": {"type": "number"} }, "required": ["key", "label", "description", "category", "scope", "isToggle"] } }, "categories": {"type": "object", "additionalProperties": {"type": "string"}}, "limit_keys": {"type": "array", "items": {"type": "string"}}, "bounds": { "type": "object", "additionalProperties": { "type": "object", "properties": {"min": {"type": "number"}, "max": {"type": "number"}}, "required": ["min", "max"] } } }, "required": [ "limit_config", "limit_config_json", "self_hosted", "defaults", "metadata", "categories", "limit_keys" ] }, "LimitConfigUpdateRequest": { "type": "object", "properties": { "limit_config": { "type": "object", "properties": { "traitDefinitions": { "type": "array", "items": {"type": "string"}, "description": "Trait definitions used by rules" }, "rules": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string", "minLength": 1, "description": "Unique rule identifier"}, "filters": { "type": "object", "properties": { "traits": { "type": "array", "items": {"type": "string"}, "description": "Trait filters that must match for the rule to apply" }, "guildFeatures": { "type": "array", "items": {"type": "string"}, "description": "Guild feature flags required for the rule to apply" } }, "description": "Optional filters that scope the rule" }, "limits": { "type": "object", "additionalProperties": {"type": "number", "minimum": 0}, "description": "Per-limit key values" } }, "required": ["id", "limits"] }, "description": "Limit rules" } }, "required": ["rules"], "description": "New limit configuration snapshot" } }, "required": ["limit_config"] }, "BrowseChannelResponse": { "type": "object", "properties": { "messages": {"type": "array", "items": {"$ref": "#/components/schemas/AdminMessageSchema"}, "maxItems": 100}, "message_responses": { "type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}, "maxItems": 100 }, "has_more": {"type": "boolean"} }, "required": ["messages", "has_more"] }, "AdminMessageSchema": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_name": {"nullable": true, "type": "string"}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "channel_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "channel_content_warning_text": {"nullable": true, "type": "string"}, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "guild_name": {"nullable": true, "type": "string"}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "guild_nsfw": {"nullable": true, "type": "boolean"}, "guild_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "guild_content_warning_text": {"nullable": true, "type": "string"}, "author_id": {"$ref": "#/components/schemas/SnowflakeType"}, "author_username": {"type": "string"}, "author_global_name": {"nullable": true, "type": "string"}, "author_discriminator": {"type": "string"}, "author_avatar": {"nullable": true, "type": "string"}, "content": {"type": "string"}, "timestamp": {"type": "string"}, "attachments": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "url": {"type": "string"}, "nsfw": {"nullable": true, "type": "boolean"}, "content_type": {"nullable": true, "type": "string"}, "width": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "height": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "size": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "ncmec_status": { "type": "string", "enum": ["not_submitted", "submitted", "failed"], "description": "NCMEC submission status" }, "ncmec_report_id": {"nullable": true, "type": "string"}, "ncmec_failure_reason": {"nullable": true, "type": "string"} }, "required": [ "id", "filename", "url", "nsfw", "content_type", "width", "height", "ncmec_status", "ncmec_report_id", "ncmec_failure_reason" ] }, "maxItems": 10 }, "user_prior_ncmec_report_ids": {"type": "array", "items": {"type": "string"}, "maxItems": 100} }, "required": [ "id", "channel_id", "channel_name", "channel_nsfw", "guild_id", "guild_name", "guild_nsfw_level", "author_id", "author_username", "author_global_name", "author_discriminator", "author_avatar", "content", "timestamp", "attachments" ] }, "MessageResponseSchema": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier (snowflake) for this message" }, "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel this message was sent in" }, "author": {"$ref": "#/components/schemas/UserPartialResponse"}, "webhook_id": { "description": "The ID of the webhook that sent this message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 5, 6, 7, 19], "description": "The type of message" }, "flags": {"$ref": "#/components/schemas/MessageFlags"}, "content": {"type": "string", "description": "The text content of the message"}, "timestamp": { "type": "string", "format": "date-time", "description": "The ISO 8601 timestamp of when the message was created" }, "edited_timestamp": { "description": "The ISO 8601 timestamp of when the message was last edited", "nullable": true, "type": "string", "format": "date-time" }, "pinned": {"type": "boolean", "description": "Whether the message is pinned"}, "mention_everyone": {"type": "boolean", "description": "Whether the message mentions @everyone"}, "tts": {"type": "boolean", "description": "Whether the message was sent as text-to-speech"}, "mentions": { "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"}, "description": "The users mentioned in the message" }, "mention_roles": { "type": "array", "items": {"type": "string"}, "description": "The role IDs mentioned in the message" }, "mention_channels": { "description": "Channels mentioned in the message that are visible to @everyone", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageChannelMentionResponse"} }, "users": { "description": "Users referenced from non-notifying content, embed, and snapshot text, included for client-side resolution", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"} }, "embeds": { "description": "The embeds attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedResponse"} }, "attachments": { "description": "The files attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageAttachmentResponse"} }, "stickers": { "description": "The stickers sent with the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageStickerResponse"} }, "nsfw_emojis": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "IDs of custom emojis in this message that are classified as NSFW" }, "reactions": { "description": "The reactions on the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageReactionResponse"} }, "message_reference": { "description": "Reference data for replies or forwards", "nullable": true, "type": "object", "properties": { "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel containing the referenced message" }, "message_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the referenced message" }, "guild_id": { "description": "The ID of the guild containing the referenced message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": {"$ref": "#/components/schemas/MessageReferenceType"} }, "required": ["channel_id", "message_id", "type"] }, "message_snapshots": { "description": "Snapshots of forwarded messages", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageSnapshotResponse"} }, "nonce": { "description": "A client-provided value for message deduplication", "nullable": true, "type": "string" }, "call": { "description": "Call information if this message represents a call", "nullable": true, "type": "object", "properties": { "participants": { "type": "array", "items": {"type": "string"}, "description": "The user IDs of participants in the call" }, "ended_timestamp": { "description": "The ISO 8601 timestamp of when the call ended", "nullable": true, "type": "string", "format": "date-time" } }, "required": ["participants"] }, "referenced_message": { "description": "The message that this message is replying to or forwarding", "nullable": true, "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier (snowflake) for this message" }, "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel this message was sent in" }, "author": {"$ref": "#/components/schemas/UserPartialResponse"}, "webhook_id": { "description": "The ID of the webhook that sent this message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 5, 6, 7, 19], "description": "The type of message" }, "flags": {"$ref": "#/components/schemas/MessageFlags"}, "content": {"type": "string", "description": "The text content of the message"}, "timestamp": { "type": "string", "format": "date-time", "description": "The ISO 8601 timestamp of when the message was created" }, "edited_timestamp": { "description": "The ISO 8601 timestamp of when the message was last edited", "nullable": true, "type": "string", "format": "date-time" }, "pinned": {"type": "boolean", "description": "Whether the message is pinned"}, "mention_everyone": {"type": "boolean", "description": "Whether the message mentions @everyone"}, "tts": {"type": "boolean", "description": "Whether the message was sent as text-to-speech"}, "mentions": { "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"}, "description": "The users mentioned in the message" }, "mention_roles": { "type": "array", "items": {"type": "string"}, "description": "The role IDs mentioned in the message" }, "mention_channels": { "description": "Channels mentioned in the message that are visible to @everyone", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageChannelMentionResponse"} }, "users": { "description": "Users referenced from non-notifying content, embed, and snapshot text, included for client-side resolution", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/UserPartialResponse"} }, "embeds": { "description": "The embeds attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedResponse"} }, "attachments": { "description": "The files attached to the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageAttachmentResponse"} }, "stickers": { "description": "The stickers sent with the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageStickerResponse"} }, "nsfw_emojis": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "description": "IDs of custom emojis in this message that are classified as NSFW" }, "reactions": { "description": "The reactions on the message", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageReactionResponse"} }, "message_reference": { "description": "Reference data for replies or forwards", "nullable": true, "type": "object", "properties": { "channel_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the channel containing the referenced message" }, "message_id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the referenced message" }, "guild_id": { "description": "The ID of the guild containing the referenced message", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "type": {"$ref": "#/components/schemas/MessageReferenceType"} }, "required": ["channel_id", "message_id", "type"] }, "message_snapshots": { "description": "Snapshots of forwarded messages", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageSnapshotResponse"} }, "nonce": { "description": "A client-provided value for message deduplication", "nullable": true, "type": "string" }, "call": { "description": "Call information if this message represents a call", "nullable": true, "type": "object", "properties": { "participants": { "type": "array", "items": {"type": "string"}, "description": "The user IDs of participants in the call" }, "ended_timestamp": { "description": "The ISO 8601 timestamp of when the call ended", "nullable": true, "type": "string", "format": "date-time" } }, "required": ["participants"] } }, "required": [ "id", "channel_id", "author", "type", "flags", "content", "timestamp", "pinned", "mention_everyone", "tts", "mentions", "mention_roles" ] } }, "required": [ "id", "channel_id", "author", "type", "flags", "content", "timestamp", "pinned", "mention_everyone", "tts", "mentions", "mention_roles" ] }, "MessageFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Message flags bitfield" }, "MessageChannelMentionResponse": { "type": "object", "properties": { "id": {"type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The ID of the mentioned channel"}, "name": {"type": "string", "description": "The name of the mentioned channel"}, "type": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The type of the mentioned channel" } }, "required": ["id", "name", "type"] }, "MessageEmbedResponse": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of embed (e.g., rich, image, video, gifv, article, link)" }, "url": {"description": "The URL of the embed", "nullable": true, "type": "string", "format": "uri"}, "title": {"description": "The title of the embed", "nullable": true, "type": "string"}, "color": { "description": "The color code of the embed sidebar", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "timestamp": { "description": "The ISO 8601 timestamp of the embed content", "nullable": true, "type": "string", "format": "date-time" }, "description": {"description": "The description of the embed", "nullable": true, "type": "string"}, "author": { "description": "The author information of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "image": { "description": "The image of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "thumbnail": { "description": "The thumbnail of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "footer": { "description": "The footer of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedFooterResponse"}] }, "fields": { "description": "The fields of the embed", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/EmbedFieldResponse"} }, "provider": { "description": "The provider of the embed (e.g., YouTube, Twitter)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "video": { "description": "The video of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "audio": { "description": "The audio of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "html": { "description": "Sanitized oEmbed HTML for trusted specialized embed renderers", "nullable": true, "type": "string" }, "html_width": { "description": "The preferred width of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "html_height": { "description": "The preferred height of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "nsfw": {"description": "Whether the embed is flagged as NSFW", "nullable": true, "type": "boolean"}, "children": { "description": "Internal nested embeds generated by unfurlers", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedChildResponse"}, "maxItems": 1 } }, "required": ["type"] }, "EmbedAuthorResponse": { "type": "object", "properties": { "name": {"type": "string", "description": "The name of the author"}, "url": {"description": "The URL of the author", "nullable": true, "type": "string", "format": "uri"}, "icon_url": { "description": "The URL of the author icon", "nullable": true, "type": "string", "format": "uri" }, "proxy_icon_url": { "description": "The proxied URL of the author icon", "nullable": true, "type": "string", "format": "uri" } }, "required": ["name"] }, "EmbedMediaResponse": { "type": "object", "properties": { "url": {"type": "string", "description": "The URL of the media"}, "proxy_url": { "description": "The proxied URL of the media", "nullable": true, "type": "string", "format": "uri" }, "content_type": {"description": "The MIME type of the media", "nullable": true, "type": "string"}, "content_hash": {"description": "The hash of the media content", "nullable": true, "type": "string"}, "width": { "description": "The width of the media in pixels", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "height": { "description": "The height of the media in pixels", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "description": {"description": "The description of the media", "nullable": true, "type": "string"}, "placeholder": { "description": "The base64 encoded placeholder image for lazy loading", "nullable": true, "type": "string" }, "duration": { "description": "The duration of the media in seconds", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "flags": {"$ref": "#/components/schemas/EmbedMediaFlags"} }, "required": ["url", "flags"] }, "EmbedMediaFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "The bitwise flags for this media" }, "EmbedFooterResponse": { "type": "object", "properties": { "text": {"type": "string", "description": "The footer text"}, "icon_url": { "description": "The URL of the footer icon", "nullable": true, "type": "string", "format": "uri" }, "proxy_icon_url": { "description": "The proxied URL of the footer icon", "nullable": true, "type": "string", "format": "uri" } }, "required": ["text"] }, "EmbedFieldResponse": { "type": "object", "properties": { "name": {"type": "string", "description": "The name of the field"}, "value": {"type": "string", "description": "The value of the field"}, "inline": {"type": "boolean", "description": "Whether the field should be displayed inline"} }, "required": ["name", "value", "inline"] }, "MessageEmbedChildResponse": { "type": "object", "properties": { "type": { "type": "string", "description": "The type of embed (e.g., rich, image, video, gifv, article, link)" }, "url": {"description": "The URL of the embed", "nullable": true, "type": "string", "format": "uri"}, "title": {"description": "The title of the embed", "nullable": true, "type": "string"}, "color": { "description": "The color code of the embed sidebar", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "timestamp": { "description": "The ISO 8601 timestamp of the embed content", "nullable": true, "type": "string", "format": "date-time" }, "description": {"description": "The description of the embed", "nullable": true, "type": "string"}, "author": { "description": "The author information of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "image": { "description": "The image of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "thumbnail": { "description": "The thumbnail of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "footer": { "description": "The footer of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedFooterResponse"}] }, "fields": { "description": "The fields of the embed", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/EmbedFieldResponse"} }, "provider": { "description": "The provider of the embed (e.g., YouTube, Twitter)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedAuthorResponse"}] }, "video": { "description": "The video of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "audio": { "description": "The audio of the embed", "nullable": true, "allOf": [{"$ref": "#/components/schemas/EmbedMediaResponse"}] }, "html": { "description": "Sanitized oEmbed HTML for trusted specialized embed renderers", "nullable": true, "type": "string" }, "html_width": { "description": "The preferred width of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "html_height": { "description": "The preferred height of sanitized oEmbed HTML", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "nsfw": {"description": "Whether the embed is flagged as NSFW", "nullable": true, "type": "boolean"} }, "required": ["type"] }, "MessageAttachmentResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier for this attachment" }, "filename": {"type": "string", "description": "The name of the attached file"}, "title": {"description": "The title of the attachment", "nullable": true, "type": "string"}, "description": {"description": "The description of the attachment", "nullable": true, "type": "string"}, "content_type": {"description": "The MIME type of the attachment", "nullable": true, "type": "string"}, "content_hash": {"description": "The hash of the attachment content", "nullable": true, "type": "string"}, "size": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The size of the attachment in bytes" }, "url": {"description": "The URL of the attachment", "nullable": true, "type": "string"}, "proxy_url": {"description": "The proxied URL of the attachment", "nullable": true, "type": "string"}, "width": { "description": "The width of the attachment in pixels (for images/videos)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "height": { "description": "The height of the attachment in pixels (for images/videos)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "placeholder": { "description": "The base64 encoded placeholder image for lazy loading", "nullable": true, "type": "string" }, "flags": {"$ref": "#/components/schemas/MessageAttachmentFlags"}, "nsfw": {"description": "Whether the attachment is flagged as NSFW", "nullable": true, "type": "boolean"}, "duration": { "description": "The duration of the media in seconds", "nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}] }, "waveform": {"description": "The base64 encoded audio waveform data", "nullable": true, "type": "string"}, "expires_at": { "description": "The ISO 8601 timestamp when the attachment URL expires", "nullable": true, "type": "string" }, "expired": {"description": "Whether the attachment URL has expired", "nullable": true, "type": "boolean"} }, "required": ["id", "filename", "size", "flags"] }, "MessageAttachmentFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Attachment flags" }, "MessageStickerResponse": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$", "description": "The unique identifier of the sticker" }, "name": {"type": "string", "description": "The name of the sticker"}, "animated": {"type": "boolean", "description": "Whether the sticker is animated"}, "nsfw": {"type": "boolean", "description": "Whether this sticker is classified as NSFW"} }, "required": ["id", "name", "animated"] }, "MessageReactionResponse": { "type": "object", "properties": { "emoji": { "type": "object", "properties": { "id": { "description": "The ID of the custom emoji (null for Unicode emojis)", "nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}] }, "name": { "type": "string", "description": "The name of the emoji (or Unicode character for standard emojis)" }, "animated": {"description": "Whether the emoji is animated", "nullable": true, "type": "boolean"} }, "required": ["name"], "description": "The emoji used for the reaction" }, "count": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "The total number of times this reaction has been used" }, "me": { "description": "Whether the current user has reacted with this emoji", "nullable": true, "type": "boolean", "enum": [true] } }, "required": ["emoji", "count"] }, "MessageReferenceType": { "type": "integer", "format": "int32", "enum": [0, 1], "description": "The type of message reference" }, "MessageSnapshotResponse": { "type": "object", "properties": { "content": {"description": "The text content of the snapshot", "nullable": true, "type": "string"}, "timestamp": { "type": "string", "format": "date-time", "description": "The ISO 8601 timestamp of when the original message was created" }, "edited_timestamp": { "description": "The ISO 8601 timestamp of when the original message was last edited", "nullable": true, "type": "string", "format": "date-time" }, "mentions": { "description": "The user IDs mentioned in the snapshot", "nullable": true, "type": "array", "items": {"type": "string"} }, "mention_roles": { "description": "The role IDs mentioned in the snapshot", "nullable": true, "type": "array", "items": {"type": "string"} }, "mention_channels": { "description": "Channels mentioned in the snapshot that are visible to @everyone", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageChannelMentionResponse"} }, "embeds": { "description": "The embeds included in the snapshot", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageEmbedResponse"} }, "attachments": { "description": "The attachments included in the snapshot", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageAttachmentResponse"} }, "stickers": { "description": "The stickers included in the snapshot", "nullable": true, "type": "array", "items": {"$ref": "#/components/schemas/MessageStickerResponse"} }, "type": { "type": "integer", "format": "int32", "enum": [0, 1, 2, 3, 4, 5, 6, 7, 19], "description": "The type of message" }, "flags": {"$ref": "#/components/schemas/MessageFlags"} }, "required": ["timestamp", "type", "flags"] }, "BrowseChannelRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id"] }, "DeleteMessageResponse": { "type": "object", "properties": {"success": {"type": "boolean", "enum": [true]}}, "required": ["success"] }, "DeleteMessageRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["channel_id", "message_id"] }, "DeleteAllUserMessagesResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "dry_run": {"type": "boolean"}, "channel_count": {"$ref": "#/components/schemas/Int32Type"}, "message_count": {"$ref": "#/components/schemas/Int32Type"}, "job_id": {"type": "string"} }, "required": ["success", "dry_run", "channel_count", "message_count"] }, "DeleteAllUserMessagesRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "dry_run": {"type": "boolean"}}, "required": ["user_id"] }, "LookupMessageResponse": { "type": "object", "properties": { "messages": {"type": "array", "items": {"$ref": "#/components/schemas/AdminMessageSchema"}, "maxItems": 100}, "message_responses": { "type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}, "maxItems": 100 }, "message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": ["messages", "message_id"] }, "LookupMessageRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"}, "context_limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id", "message_id"] }, "LookupMessageByAttachmentRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "attachment_id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "context_limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id", "attachment_id", "filename"] }, "NcmecAttachmentSubmitResultResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "ncmec_report_id": {"type": "string"}, "audit_log_reason": {"type": "string"} }, "required": ["success", "ncmec_report_id", "audit_log_reason"] }, "ReportAttachmentToNcmecRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"}, "attachment_id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "source_report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reporter_full_name": {"type": "string", "minLength": 1, "maxLength": 200}, "confirmed_viewed": {"type": "boolean", "enum": [true]} }, "required": ["channel_id", "message_id", "attachment_id", "filename", "reporter_full_name", "confirmed_viewed"] }, "SearchChannelMessagesResponse": { "type": "object", "properties": { "messages": {"type": "array", "items": {"$ref": "#/components/schemas/AdminMessageSchema"}, "maxItems": 100}, "message_responses": { "type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}, "maxItems": 100 }, "total": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": ["messages", "total"] }, "SearchChannelMessagesRequest": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "query": {"type": "string", "minLength": 1, "maxLength": 200}, "limit": {"type": "integer", "minimum": 1, "maximum": 100, "format": "int32"} }, "required": ["channel_id", "query"] }, "MessageShredResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "job_id": {"type": "string"}, "requested": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} }, "required": ["success", "job_id"] }, "MessageShredRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "entries": { "type": "array", "items": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "message_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["channel_id", "message_id"] }, "minItems": 1, "maxItems": 1000 } }, "required": ["user_id", "entries"] }, "MessageShredStatusResponse": { "oneOf": [ { "type": "object", "properties": {"status": {"type": "string", "enum": ["not_found"]}}, "required": ["status"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["in_progress", "completed", "failed"], "description": "Current message shred job status" }, "requested": {"$ref": "#/components/schemas/Int32Type"}, "total": {"$ref": "#/components/schemas/Int32Type"}, "processed": {"$ref": "#/components/schemas/Int32Type"}, "skipped": {"$ref": "#/components/schemas/Int32Type"}, "started_at": {"type": "string"}, "completed_at": {"type": "string"}, "failed_at": {"type": "string"}, "error": {"type": "string"} }, "required": ["status", "requested", "total", "processed", "skipped"] } ] }, "MessageShredStatusRequest": { "type": "object", "properties": {"job_id": {"type": "string"}}, "required": ["job_id"] }, "ListReportsResponse": { "type": "object", "properties": { "reports": {"type": "array", "items": {"$ref": "#/components/schemas/ReportAdminResponseSchema"}} }, "required": ["reports"] }, "ReportAdminResponseSchema": { "type": "object", "properties": { "report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reporter_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reporter_tag": {"nullable": true, "type": "string"}, "reporter_username": {"nullable": true, "type": "string"}, "reporter_global_name": {"nullable": true, "type": "string"}, "reporter_discriminator": {"nullable": true, "type": "string"}, "reporter_email": {"nullable": true, "type": "string"}, "reporter_full_legal_name": {"nullable": true, "type": "string"}, "reporter_country_of_residence": {"nullable": true, "type": "string"}, "reported_at": {"type": "string"}, "status": {"$ref": "#/components/schemas/ReportStatus"}, "report_type": {"$ref": "#/components/schemas/ReportType"}, "category": {"nullable": true, "type": "string"}, "additional_info": {"nullable": true, "type": "string"}, "reported_user_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_user_tag": {"nullable": true, "type": "string"}, "reported_user_username": {"nullable": true, "type": "string"}, "reported_user_global_name": {"nullable": true, "type": "string"}, "reported_user_discriminator": {"nullable": true, "type": "string"}, "reported_user_avatar_hash": {"nullable": true, "type": "string"}, "reported_guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_guild_name": {"nullable": true, "type": "string"}, "reported_guild_icon_hash": {"nullable": true, "type": "string"}, "reported_message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "reported_channel_name": {"nullable": true, "type": "string"}, "reported_channel_nsfw": {"nullable": true, "type": "boolean"}, "reported_guild_invite_code": {"nullable": true, "type": "string"}, "reported_guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "reported_guild_nsfw": {"nullable": true, "type": "boolean"}, "reported_guild_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "reported_guild_content_warning_text": {"nullable": true, "type": "string"}, "reported_channel_nsfw_override": {"nullable": true, "type": "boolean"}, "reported_channel_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "reported_channel_content_warning_text": {"nullable": true, "type": "string"}, "reported_channel_effective_nsfw": {"nullable": true, "type": "boolean"}, "reported_channel_effective_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "reported_channel_effective_content_warning_text": {"nullable": true, "type": "string"}, "resolved_at": {"nullable": true, "type": "string"}, "resolved_by_admin_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "public_comment": {"nullable": true, "type": "string"}, "mutual_dm_channel_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "message_context": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "channel_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "channel_content_warning_text": {"nullable": true, "type": "string"}, "guild_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "guild_nsfw": {"nullable": true, "type": "boolean"}, "guild_content_warning_level": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ContentWarningLevel"}] }, "guild_content_warning_text": {"nullable": true, "type": "string"}, "content": {"type": "string"}, "timestamp": {"type": "string"}, "attachments": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "filename": {"type": "string"}, "url": {"type": "string"}, "nsfw": {"nullable": true, "type": "boolean"}, "content_type": {"nullable": true, "type": "string"}, "width": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "height": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "size": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "ncmec_status": { "type": "string", "enum": ["not_submitted", "submitted", "failed"], "description": "NCMEC submission status" }, "ncmec_report_id": {"nullable": true, "type": "string"}, "ncmec_failure_reason": {"nullable": true, "type": "string"} }, "required": [ "id", "filename", "url", "nsfw", "content_type", "width", "height", "ncmec_status", "ncmec_report_id", "ncmec_failure_reason" ] } }, "author_id": {"$ref": "#/components/schemas/SnowflakeType"}, "author_username": {"type": "string"}, "author_global_name": {"nullable": true, "type": "string"}, "author_discriminator": {"type": "string"}, "author_avatar": {"nullable": true, "type": "string"}, "user_prior_ncmec_report_ids": {"type": "array", "items": {"type": "string"}, "maxItems": 100} }, "required": [ "id", "channel_id", "channel_nsfw", "guild_id", "guild_nsfw_level", "content", "timestamp", "attachments", "author_id", "author_username", "author_global_name", "author_discriminator", "author_avatar" ] } }, "message_responses": {"type": "array", "items": {"$ref": "#/components/schemas/MessageResponseSchema"}} }, "required": [ "report_id", "reporter_id", "reporter_tag", "reporter_username", "reporter_global_name", "reporter_discriminator", "reporter_email", "reporter_full_legal_name", "reporter_country_of_residence", "reported_at", "status", "report_type", "category", "additional_info", "reported_user_id", "reported_user_tag", "reported_user_username", "reported_user_global_name", "reported_user_discriminator", "reported_user_avatar_hash", "reported_guild_id", "reported_guild_name", "reported_guild_icon_hash", "reported_message_id", "reported_channel_id", "reported_channel_name", "reported_channel_nsfw", "reported_guild_invite_code", "reported_guild_nsfw_level", "resolved_at", "resolved_by_admin_id", "public_comment" ] }, "ReportStatus": {"type": "integer", "format": "int32", "enum": [0, 1], "description": "The status of the report"}, "ReportType": { "type": "integer", "format": "int32", "enum": [0, 1, 2], "description": "The type of entity being reported" }, "ListReportsRequest": { "type": "object", "properties": { "status": {"$ref": "#/components/schemas/ReportStatus"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of reports to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of reports to skip" } } }, "ResolveReportResponse": { "type": "object", "properties": { "report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "status": {"$ref": "#/components/schemas/ReportStatus"}, "resolved_at": {"nullable": true, "type": "string"}, "public_comment": {"nullable": true, "type": "string"} }, "required": ["report_id", "status", "resolved_at", "public_comment"] }, "ResolveReportRequest": { "type": "object", "properties": { "report_id": {"$ref": "#/components/schemas/SnowflakeType"}, "public_comment": {"type": "string", "description": "Public comment to include with the resolution"} }, "required": ["report_id"] }, "SearchReportsResponse": { "type": "object", "properties": { "reports": {"type": "array", "items": {"$ref": "#/components/schemas/ReportAdminResponseSchema"}}, "total": {"type": "number"}, "offset": {"type": "number"}, "limit": {"type": "number"} }, "required": ["reports", "total", "offset", "limit"] }, "SearchReportsRequest": { "type": "object", "properties": { "query": {"type": "string", "description": "Search query string"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "offset": { "type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64", "description": "Number of entries to skip" }, "reporter_id": {"$ref": "#/components/schemas/SnowflakeType"}, "status": {"$ref": "#/components/schemas/ReportStatus"}, "report_type": {"$ref": "#/components/schemas/ReportType"}, "category": {"type": "string", "description": "Filter by report category"}, "reported_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reported_guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reported_channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "guild_context_id": {"$ref": "#/components/schemas/SnowflakeType"}, "resolved_by_admin_id": {"$ref": "#/components/schemas/SnowflakeType"}, "sort_by": { "type": "string", "enum": ["createdAt", "reportedAt", "resolvedAt"], "description": "Field to sort reports by" }, "sort_order": {"type": "string", "enum": ["asc", "desc"], "description": "Sort order direction"} } }, "RefreshSearchIndexResponse": { "type": "object", "properties": {"success": {"type": "boolean", "enum": [true]}, "job_id": {"type": "string"}}, "required": ["success", "job_id"] }, "RefreshSearchIndexRequest": { "type": "object", "properties": { "index_type": { "type": "string", "enum": [ "guilds", "users", "reports", "audit_logs", "channel_messages", "guild_members", "favorite_memes", "discovery" ], "description": "Type of search index to refresh" }, "guild_id": {"$ref": "#/components/schemas/SnowflakeType"}, "user_id": {"$ref": "#/components/schemas/SnowflakeType"} }, "required": ["index_type"] }, "IndexRefreshStatusResponse": { "oneOf": [ { "type": "object", "properties": {"status": {"type": "string", "enum": ["not_found"], "description": "Job was not found"}}, "required": ["status"] }, { "type": "object", "properties": { "status": { "type": "string", "enum": ["in_progress", "completed", "failed"], "description": "Current status of the index refresh job" }, "index_type": {"type": "string", "description": "Type of index being refreshed"}, "total": {"type": "number", "description": "Total number of items to index"}, "indexed": {"type": "number", "description": "Number of items indexed so far"}, "started_at": {"type": "string", "description": "ISO 8601 timestamp when the job started"}, "completed_at": {"type": "string", "description": "ISO 8601 timestamp when the job completed"}, "failed_at": {"type": "string", "description": "ISO 8601 timestamp when the job failed"}, "error": {"type": "string", "description": "Error message if the job failed"} }, "required": ["status", "index_type"] } ] }, "GetIndexRefreshStatusRequest": { "type": "object", "properties": {"job_id": {"type": "string", "description": "ID of the index refresh job to check"}}, "required": ["job_id"] }, "SuspiciousEmailDomainRequest": { "type": "object", "properties": { "domain": { "type": "string", "minLength": 1, "maxLength": 253, "pattern": "^[a-zA-Z0-9][a-zA-Z0-9\\-.]*\\.[a-zA-Z]{2,}$", "description": "Email domain to flag as suspicious (e.g. mail.ru). Registrants from this domain will be required to verify a phone number." } }, "required": ["domain"] }, "SendSystemDmResponse": { "type": "object", "properties": { "recipient_count": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "Number of recipients the worker job was queued to deliver to" } }, "required": ["recipient_count"] }, "SendSystemDmRequest": { "type": "object", "properties": { "content": { "type": "string", "minLength": 1, "maxLength": 4000, "description": "Message content to send to each recipient" }, "user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "minItems": 1, "maxItems": 10000, "description": "Recipient user IDs. Each receives the same content as a system DM." } }, "required": ["content", "user_ids"] }, "HeapSnapshotResponse": { "type": "object", "properties": { "success": {"type": "boolean", "enum": [true]}, "filename": {"type": "string", "description": "Name of the heap snapshot file"}, "size_bytes": {"type": "number", "description": "Size of the heap snapshot in bytes"} }, "required": ["success", "filename", "size_bytes"] }, "UserMutationResponse": { "type": "object", "properties": {"user": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}, "required": ["user"] }, "UserAdminResponseSchema": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"$ref": "#/components/schemas/Int32Type"}, "global_name": {"nullable": true, "type": "string"}, "bot": {"type": "boolean"}, "system": {"type": "boolean"}, "flags": {"$ref": "#/components/schemas/UserFlags"}, "premium_flags": {"$ref": "#/components/schemas/PremiumFlags"}, "avatar": {"nullable": true, "type": "string"}, "banner": {"nullable": true, "type": "string"}, "bio": {"nullable": true, "type": "string"}, "pronouns": {"nullable": true, "type": "string"}, "accent_color": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "email": {"nullable": true, "type": "string"}, "email_verified": {"type": "boolean"}, "email_bounced": {"type": "boolean"}, "has_verified_phone": {"type": "boolean"}, "date_of_birth": {"nullable": true, "type": "string"}, "locale": {"nullable": true, "type": "string"}, "premium_type": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "premium_since": {"nullable": true, "type": "string"}, "premium_until": {"nullable": true, "type": "string"}, "premium_grace_ends_at": {"nullable": true, "type": "string"}, "premium_lifetime_sequence": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "suspicious_activity_flags": {"$ref": "#/components/schemas/SuspiciousActivityFlags"}, "temp_banned_until": {"nullable": true, "type": "string"}, "pending_deletion_at": {"nullable": true, "type": "string"}, "pending_bulk_message_deletion_at": {"nullable": true, "type": "string"}, "deletion_reason_code": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "deletion_public_reason": {"nullable": true, "type": "string"}, "acls": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "traits": {"type": "array", "items": {"type": "string"}, "maxItems": 100}, "has_totp": {"type": "boolean"}, "authenticator_types": {"type": "array", "items": {"$ref": "#/components/schemas/Int32Type"}, "maxItems": 10}, "last_active_at": {"nullable": true, "type": "string"}, "last_active_ip": {"nullable": true, "type": "string"}, "last_active_ip_reverse": {"nullable": true, "type": "string"}, "last_active_location": {"nullable": true, "type": "string"} }, "required": [ "id", "username", "discriminator", "global_name", "bot", "system", "flags", "premium_flags", "avatar", "banner", "bio", "pronouns", "accent_color", "email", "email_verified", "email_bounced", "has_verified_phone", "date_of_birth", "locale", "premium_type", "premium_since", "premium_until", "premium_grace_ends_at", "premium_lifetime_sequence", "suspicious_activity_flags", "temp_banned_until", "pending_deletion_at", "pending_bulk_message_deletion_at", "deletion_reason_code", "deletion_public_reason", "acls", "traits", "has_totp", "authenticator_types", "last_active_at", "last_active_ip", "last_active_ip_reverse", "last_active_location" ] }, "PremiumFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "A single premium flag value to add or remove" }, "SuspiciousActivityFlags": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 2147483647, "description": "Bitmask of suspicious activity flags that triggered the disable" }, "CancelBulkMessageDeletionRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "DisableMfaRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ChangeDobRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "date_of_birth": {"type": "string", "description": "New date of birth in YYYY-MM-DD format"} }, "required": ["user_id", "date_of_birth"] }, "ChangeEmailRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "email": {"$ref": "#/components/schemas/EmailType"} }, "required": ["user_id", "email"] }, "ListUserChangeLogResponseSchema": { "type": "object", "properties": { "entries": { "type": "array", "items": { "type": "object", "properties": { "event_id": {"type": "string"}, "field": {"type": "string"}, "old_value": {"nullable": true, "type": "string"}, "new_value": {"nullable": true, "type": "string"}, "reason": {"nullable": true, "type": "string"}, "actor_user_id": {"nullable": true, "type": "string"}, "event_at": {"type": "string"} }, "required": ["event_id", "field", "old_value", "new_value", "reason", "actor_user_id", "event_at"] }, "maxItems": 200 }, "next_page_token": {"nullable": true, "type": "string"} }, "required": ["entries", "next_page_token"] }, "ListUserChangeLogRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of entries to return" }, "page_token": {"type": "string", "description": "Pagination token for the next page of results"} }, "required": ["user_id"] }, "ChangeUsernameRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"$ref": "#/components/schemas/UsernameType"}, "discriminator": {"$ref": "#/components/schemas/Int32Type"} }, "required": ["user_id", "username"] }, "UsernameType": {"type": "string", "minLength": 1, "maxLength": 32, "pattern": "^[a-zA-Z0-9_]+$"}, "ClearUserFieldsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "fields": { "type": "array", "items": { "type": "string", "enum": ["avatar", "banner", "bio", "pronouns", "global_name"], "description": "User profile field that can be cleared" }, "maxItems": 10, "description": "List of profile fields to clear" } }, "required": ["user_id", "fields"] }, "DeleteWebAuthnCredentialRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "credential_id": {"type": "string", "description": "ID of the WebAuthn credential to delete"} }, "required": ["user_id", "credential_id"] }, "DisableForSuspiciousActivityRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "flags": {"$ref": "#/components/schemas/SuspiciousActivityFlags"} }, "required": ["user_id", "flags"] }, "ListUserDmChannelsResponse": { "type": "object", "properties": { "channels": { "type": "array", "items": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_type": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "recipient_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 100 }, "recipients": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"}, "avatar": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name", "avatar"] }, "maxItems": 100 }, "last_message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "is_open": {"type": "boolean"}, "name": {"nullable": true, "type": "string"}, "icon": {"nullable": true, "type": "string"}, "owner_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": [ "channel_id", "channel_type", "channel_nsfw", "guild_nsfw_level", "recipient_ids", "recipients", "last_message_id", "is_open", "name", "icon", "owner_id" ] }, "maxItems": 200 } }, "required": ["channels"] }, "ListUserDmChannelsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": { "type": "integer", "minimum": 1, "maximum": 200, "format": "int32", "description": "Maximum number of DM channels to return" } }, "required": ["user_id"] }, "ListUserGroupDmChannelsResponse": { "type": "object", "properties": { "channels": { "type": "array", "items": { "type": "object", "properties": { "channel_id": {"$ref": "#/components/schemas/SnowflakeType"}, "channel_type": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/Int32Type"}]}, "channel_nsfw": {"nullable": true, "type": "boolean"}, "guild_nsfw_level": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/NSFWLevel"}]}, "recipient_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 100 }, "recipients": { "type": "array", "items": { "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"}, "avatar": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name", "avatar"] }, "maxItems": 100 }, "last_message_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]}, "is_open": {"type": "boolean"}, "name": {"nullable": true, "type": "string"}, "icon": {"nullable": true, "type": "string"}, "owner_id": {"nullable": true, "allOf": [{"$ref": "#/components/schemas/SnowflakeType"}]} }, "required": [ "channel_id", "channel_type", "channel_nsfw", "guild_nsfw_level", "recipient_ids", "recipients", "last_message_id", "is_open", "name", "icon", "owner_id" ] }, "maxItems": 500 } }, "required": ["channels"] }, "ListUserGroupDmChannelsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ListUserGuildsResponse": { "type": "object", "properties": {"guilds": {"type": "array", "items": {"$ref": "#/components/schemas/GuildAdminResponse"}}}, "required": ["guilds"] }, "ListUserGuildsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "before": {"$ref": "#/components/schemas/SnowflakeType"}, "after": {"$ref": "#/components/schemas/SnowflakeType"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "with_counts": {"type": "boolean"} }, "required": ["user_id"] }, "ListUserRelationshipsResponse": { "type": "object", "properties": { "friends": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 }, "incoming_requests": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 }, "outgoing_requests": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 }, "blocked": { "type": "array", "items": {"$ref": "#/components/schemas/AdminRelationshipEntrySchema"}, "maxItems": 10000 } }, "required": ["friends", "incoming_requests", "outgoing_requests", "blocked"] }, "AdminRelationshipEntrySchema": { "type": "object", "properties": { "target_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "category": {"$ref": "#/components/schemas/RelationshipCategoryEnum"}, "nickname": {"nullable": true, "type": "string"}, "since": {"nullable": true, "type": "string"}, "target": { "nullable": true, "type": "object", "properties": { "id": {"$ref": "#/components/schemas/SnowflakeType"}, "username": {"type": "string"}, "discriminator": {"type": "string"}, "global_name": {"nullable": true, "type": "string"}, "avatar": {"nullable": true, "type": "string"} }, "required": ["id", "username", "discriminator", "global_name", "avatar"] } }, "required": ["target_user_id", "category", "nickname", "since", "target"] }, "RelationshipCategoryEnum": { "enum": ["friend", "incoming_request", "outgoing_request", "blocked"], "type": "string" }, "ListUserRelationshipsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ListUserSessionsResponse": { "type": "object", "properties": { "sessions": { "type": "array", "items": { "type": "object", "properties": { "session_id_hash": {"type": "string", "description": "Hashed session identifier (base64url)"}, "created_at": {"type": "string", "description": "ISO timestamp when the session was created"}, "approx_last_used_at": { "type": "string", "description": "ISO timestamp of the session last usage (approximate)" }, "client_ip": {"type": "string", "description": "Client IP address"}, "client_ip_reverse": { "description": "Reverse DNS hostname for the client IP (PTR), if available", "nullable": true, "type": "string" }, "client_os": { "description": "Client operating system, if detected", "nullable": true, "type": "string" }, "client_platform": {"description": "Client platform, if detected", "nullable": true, "type": "string"}, "client_location": { "description": "Approximate geo location label for the client IP, if available", "nullable": true, "type": "string" }, "deleted_at": { "description": "ISO timestamp when the session was terminated, or null if still active", "nullable": true, "type": "string" } }, "required": [ "session_id_hash", "created_at", "approx_last_used_at", "client_ip", "client_ip_reverse", "client_os", "client_platform", "client_location", "deleted_at" ] } } }, "required": ["sessions"] }, "ListUserSessionsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "WebAuthnCredentialListResponse": { "type": "array", "items": {"$ref": "#/components/schemas/WebAuthnCredentialResponse"} }, "WebAuthnCredentialResponse": { "type": "object", "properties": { "id": {"type": "string", "description": "The credential ID"}, "name": {"type": "string", "description": "User-assigned name for the credential"}, "created_at": {"type": "string", "description": "When the credential was registered"}, "last_used_at": {"description": "When the credential was last used", "nullable": true, "type": "string"} }, "required": ["id", "name", "created_at", "last_used_at"] }, "ListWebAuthnCredentialsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "LookupUserResponse": { "type": "object", "properties": {"users": {"type": "array", "items": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}}, "required": ["users"] }, "LookupUserRequest": { "oneOf": [ {"type": "object", "properties": {"query": {"type": "string"}}, "required": ["query"]}, { "type": "object", "properties": { "user_ids": {"type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 100} }, "required": ["user_ids"] } ] }, "AdminUsersMeResponse": { "type": "object", "properties": {"user": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}, "required": ["user"] }, "RemoveUserRelationshipRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "target_user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "category": { "enum": ["friend", "incoming_request", "outgoing_request", "blocked"], "type": "string", "description": "Which relationship to remove. Friend and outgoing_request also remove the mirror entry on the target user." } }, "required": ["user_id", "target_user_id", "category"] }, "RemoveUserRelationshipsResponse": { "type": "object", "properties": {"removed_count": {"$ref": "#/components/schemas/Int32Type"}}, "required": ["removed_count"] }, "RemoveUserRelationshipsByCategoryRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "category": { "enum": ["friend", "incoming_request", "outgoing_request", "blocked"], "type": "string", "description": "Category of relationships to remove for this user" } }, "required": ["user_id", "category"] }, "ResendVerificationEmailRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "ScheduleAccountDeletionRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "reason_code": { "type": "integer", "minimum": 0, "maximum": 2147483647, "format": "int32", "description": "Code indicating the reason for deletion" }, "public_reason": {"type": "string", "description": "Public-facing reason for the deletion"}, "days_until_deletion": { "type": "integer", "minimum": 1, "maximum": 365, "format": "int32", "description": "Number of days until the account is deleted" } }, "required": ["user_id", "reason_code"] }, "SearchUsersResponse": { "type": "object", "properties": { "users": {"type": "array", "items": {"$ref": "#/components/schemas/UserAdminResponseSchema"}}, "total": {"type": "number"} }, "required": ["users", "total"] }, "SearchUsersRequest": { "type": "object", "properties": { "query": {"type": "string"}, "email": {"type": "string"}, "last_active_ip": {"type": "string"}, "limit": {"type": "integer", "minimum": 1, "maximum": 200, "format": "int32"}, "offset": {"type": "integer", "minimum": 0, "maximum": 9007199254740991, "format": "int64"} } }, "SendPasswordResetRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "SetUserAclsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "acls": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of access control permissions to assign" } }, "required": ["user_id", "acls"] }, "SetUserBotStatusRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "bot": {"type": "boolean", "description": "Whether the user should be marked as a bot"} }, "required": ["user_id", "bot"] }, "SetUserSystemStatusRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "system": {"type": "boolean", "description": "Whether the user should be marked as a system user"} }, "required": ["user_id", "system"] }, "SetUserTraitsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "traits": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "List of traits to assign to the user" } }, "required": ["user_id", "traits"] }, "TempBanUserRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "duration_hours": { "type": "integer", "minimum": 0, "maximum": 8760, "format": "int32", "description": "Duration of the ban in hours. Use 0 for a permanent ban (until manually unbanned)." }, "reason": {"type": "string", "description": "Reason for the temporary ban"} }, "required": ["user_id", "duration_hours"] }, "TerminateSessionsResponse": { "type": "object", "properties": {"terminated_count": {"$ref": "#/components/schemas/Int32Type"}}, "required": ["terminated_count"] }, "TerminateSessionsRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "UpdateUserFlagsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "add_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to add" }, "remove_flags": { "type": "array", "items": {"$ref": "#/components/schemas/UserFlags"}, "maxItems": 64, "description": "User flags to remove" } }, "required": ["user_id"] }, "UpdateHasVerifiedPhoneRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "has_verified_phone": { "type": "boolean", "description": "Whether the user should be treated as having completed phone verification" } }, "required": ["user_id", "has_verified_phone"] }, "UpdatePremiumFlagsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "add_flags": { "type": "array", "items": {"$ref": "#/components/schemas/PremiumFlags"}, "maxItems": 64, "description": "Premium flags to add" }, "remove_flags": { "type": "array", "items": {"$ref": "#/components/schemas/PremiumFlags"}, "maxItems": 64, "description": "Premium flags to remove" } }, "required": ["user_id"] }, "UpdateSuspiciousActivityFlagsRequest": { "type": "object", "properties": { "user_id": {"$ref": "#/components/schemas/SnowflakeType"}, "flags": {"$ref": "#/components/schemas/SuspiciousActivityFlags"} }, "required": ["user_id", "flags"] }, "VerifyUserEmailRequest": { "type": "object", "properties": {"user_id": {"$ref": "#/components/schemas/SnowflakeType"}}, "required": ["user_id"] }, "BanUserAvatarResponseSchema": { "type": "object", "properties": {"hash_short": {"type": "string"}}, "required": ["hash_short"] }, "BanUserAvatarRequest": { "type": "object", "properties": {"reason": {"type": "string"}, "notes": {"type": "string"}} }, "VoiceDiagnosticsObjectListResponse": { "type": "object", "properties": { "bucket": {"type": "string", "description": "Diagnostics S3 bucket"}, "objects": { "type": "array", "items": { "type": "object", "properties": { "key": {"type": "string", "description": "S3 object key"}, "session_id": {"type": "string", "description": "Voice diagnostics session id"}, "start_ns": { "type": "string", "description": "First client event timestamp in the object, in nanoseconds" }, "end_ns": { "type": "string", "description": "Last client event timestamp in the object, in nanoseconds" }, "last_modified": { "description": "S3 object last-modified timestamp", "nullable": true, "type": "string", "format": "date-time" } }, "required": ["key", "session_id", "start_ns", "end_ns", "last_modified"] }, "description": "Matching diagnostics objects" } }, "required": ["bucket", "objects"] }, "CreateVoiceRegionResponse": { "type": "object", "properties": { "region": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Created voice region" } }, "required": ["region"] }, "CreateVoiceRegionRequest": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" } }, "required": ["id", "name", "emoji", "latitude", "longitude"] }, "DeleteVoiceResponse": { "type": "object", "properties": {"success": {"type": "boolean", "description": "Whether the deletion was successful"}}, "required": ["success"] }, "DeleteVoiceRegionRequest": { "type": "object", "properties": {"id": {"type": "string", "description": "ID of the voice region to delete"}}, "required": ["id"] }, "GetVoiceRegionResponse": { "type": "object", "properties": { "region": { "description": "Voice region details or null if not found", "nullable": true, "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" }, "servers": { "type": "array", "items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"}, "description": "Voice servers in this region" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ] } }, "required": ["region"] }, "VoiceServerAdminResponse": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" }, "created_at": { "description": "ISO 8601 timestamp when the server was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the server was last updated", "nullable": true, "type": "string" } }, "required": [ "region_id", "server_id", "endpoint", "latitude", "longitude", "is_active", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ] }, "GetVoiceRegionRequest": { "type": "object", "properties": { "id": {"type": "string", "description": "ID of the voice region to retrieve"}, "include_servers": {"type": "boolean", "description": "Whether to include voice servers in the response"} }, "required": ["id"] }, "ListVoiceRegionsResponse": { "type": "object", "properties": { "regions": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" }, "servers": { "type": "array", "items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"}, "description": "Voice servers in this region" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ] }, "description": "List of voice regions" } }, "required": ["regions"] }, "ListVoiceRegionsRequest": { "type": "object", "properties": { "include_servers": {"type": "boolean", "description": "Whether to include voice servers in the response"} } }, "UpdateVoiceRegionResponse": { "type": "object", "properties": { "region": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" }, "created_at": { "description": "ISO 8601 timestamp when the region was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the region was last updated", "nullable": true, "type": "string" } }, "required": [ "id", "name", "emoji", "latitude", "longitude", "is_default", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Updated voice region" } }, "required": ["region"] }, "UpdateVoiceRegionRequest": { "type": "object", "properties": { "id": {"type": "string", "description": "Unique identifier for the voice region"}, "name": {"type": "string", "description": "Display name of the voice region"}, "emoji": {"type": "string", "description": "Emoji representing the region"}, "latitude": {"type": "number", "description": "Geographic latitude coordinate"}, "longitude": {"type": "number", "description": "Geographic longitude coordinate"}, "is_default": {"type": "boolean", "description": "Whether this is the default region"}, "vip_only": {"type": "boolean", "description": "Whether this region is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this region" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this region" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this region" } }, "required": ["id"] }, "CreateVoiceServerResponse": { "type": "object", "properties": { "server": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" }, "created_at": { "description": "ISO 8601 timestamp when the server was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the server was last updated", "nullable": true, "type": "string" } }, "required": [ "region_id", "server_id", "endpoint", "latitude", "longitude", "is_active", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Created voice server" } }, "required": ["server"] }, "CreateVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "api_key": {"type": "string", "description": "API key for authenticating with the voice server"}, "api_secret": {"type": "string", "description": "API secret for authenticating with the voice server"}, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" } }, "required": ["region_id", "server_id", "endpoint", "api_key", "api_secret"] }, "DeleteVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region the server belongs to"}, "server_id": {"type": "string", "description": "ID of the voice server to delete"} }, "required": ["region_id", "server_id"] }, "GetVoiceServerResponse": { "type": "object", "properties": { "server": { "description": "Voice server details or null if not found", "nullable": true, "allOf": [{"$ref": "#/components/schemas/VoiceServerAdminResponse"}] } }, "required": ["server"] }, "GetVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region the server belongs to"}, "server_id": {"type": "string", "description": "ID of the voice server to retrieve"} }, "required": ["region_id", "server_id"] }, "ListVoiceServersResponse": { "type": "object", "properties": { "servers": { "type": "array", "items": {"$ref": "#/components/schemas/VoiceServerAdminResponse"}, "description": "List of voice servers" } }, "required": ["servers"] }, "ListVoiceServersRequest": { "type": "object", "properties": {"region_id": {"type": "string", "description": "ID of the region to list servers for"}}, "required": ["region_id"] }, "UpdateVoiceServerResponse": { "type": "object", "properties": { "server": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" }, "created_at": { "description": "ISO 8601 timestamp when the server was created", "nullable": true, "type": "string" }, "updated_at": { "description": "ISO 8601 timestamp when the server was last updated", "nullable": true, "type": "string" } }, "required": [ "region_id", "server_id", "endpoint", "latitude", "longitude", "is_active", "vip_only", "required_guild_features", "allowed_guild_ids", "allowed_user_ids", "created_at", "updated_at" ], "description": "Updated voice server" } }, "required": ["server"] }, "UpdateVoiceServerRequest": { "type": "object", "properties": { "region_id": {"type": "string", "description": "ID of the region this server belongs to"}, "server_id": {"type": "string", "description": "Unique identifier for the voice server"}, "endpoint": { "type": "string", "format": "uri", "description": "Client signal WebSocket endpoint URL for the voice server" }, "api_key": {"type": "string", "description": "API key for authenticating with the voice server"}, "api_secret": {"type": "string", "description": "API secret for authenticating with the voice server"}, "latitude": { "description": "Optional geographic latitude override for this server", "nullable": true, "type": "number" }, "longitude": { "description": "Optional geographic longitude override for this server", "nullable": true, "type": "number" }, "is_active": {"type": "boolean", "description": "Whether the server is currently active"}, "vip_only": {"type": "boolean", "description": "Whether this server is restricted to VIP users"}, "required_guild_features": { "type": "array", "items": {"type": "string"}, "maxItems": 100, "description": "Guild features required to use this server" }, "allowed_guild_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "Guild IDs explicitly allowed to use this server" }, "allowed_user_ids": { "type": "array", "items": {"$ref": "#/components/schemas/SnowflakeType"}, "maxItems": 1000, "description": "User IDs explicitly allowed to use this server" } }, "required": ["region_id", "server_id"] } }, "securitySchemes": { "botToken": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "Bot token: `Authorization: Bot <token>`. This is the primary authentication method for bot applications." }, "oauth2Token": { "type": "oauth2", "description": "OAuth2 access token: `Authorization: Bearer <token>`.", "flows": { "authorizationCode": { "authorizationUrl": "/oauth2/authorize", "tokenUrl": "/oauth2/token", "scopes": { "identify": "Read basic user identity information.", "email": "Read the user email address.", "guilds": "Read guild membership information for the current user.", "connections": "Read linked third-party account connections for the current user.", "bot": "Add a bot user to a guild." } } } }, "bearerToken": { "type": "http", "scheme": "bearer", "description": "Bearer-form token: `Authorization: Bearer <token>`. Use `oauth2Token` when a route requires OAuth2 scopes." }, "sessionToken": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "User session token from login: `Authorization: <token>` (no prefix). Prefer a bot account over user tokens where possible." }, "adminApiKey": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "Admin API key: `Authorization: Admin <token>`. Only valid for `/admin/*` endpoints." } } }, "tags": [{"name": "Admin", "description": "Administrative operations for instance management"}]}